Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1778259&r1=1778258&r2=1778259&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 Wed Jan 11 09:15:37 2017
@@ -232,9 +232,11 @@ public class Application extends Authent
                        
rcl.setIsSuperModerator(client.hasRight(Right.superModerator));
                        rcl.setIsMod(client.hasRight(Right.moderator));
                        rcl.setIsBroadcasting(client.hasRight(Right.audio));
-                       rcl.setCanVideo(client.hasRight(Right.video) && 
client.hasActivity(Activity.broadcastV));
+                       rcl.setCanVideo(client.hasRight(Right.video) && 
client.isCamEnabled() && client.hasActivity(Activity.broadcastV));
                        rcl.setCanDraw(client.hasRight(Right.whiteBoard));
                        if (client.hasActivity(Activity.broadcastA) || 
client.hasActivity(Activity.broadcastV)) {
+                               rcl.setVWidth(client.getWidth());
+                               rcl.setVHeight(client.getHeight());
                                if (client.getPod() != Pod.none) {
                                        rcl.setInterviewPodId(client.getPod() 
== Pod.left ? 1 : 2);
                                }

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=1778259&r1=1778258&r2=1778259&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
 Wed Jan 11 09:15:37 2017
@@ -38,6 +38,7 @@ import org.apache.openmeetings.web.room.
 import org.apache.openmeetings.web.room.RoomPanel.Action;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.json.JSONObject;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.extensions.markup.html.tabs.ITab;
 import org.apache.wicket.markup.head.IHeaderResponse;
@@ -50,6 +51,7 @@ 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.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -62,11 +64,13 @@ public class RoomSidebar extends Panel {
        public static final String FUNC_TOGGLE_RIGHT = "toggleRight";
        public static final String FUNC_TOGGLE_ACTIVITY = "toggleActivity";
        public static final String FUNC_ACTION = "roomAction";
+       public static final String FUNC_SETTINGS = "avSettings";
        public static final String PARAM_ACTION = "action";
        public static final String PARAM_ACTIVITY = "activity";
        public static final String PARAM_RIGHT = "right";
        public static final String PARAM_UID = "uid";
        public static final String PARAM_POD = "pod";
+       public static final String PARAM_SETTINGS = "s";
        private final RoomPanel room;
        private final TabbedPanel tabs;
        private final ITab userTab;
@@ -91,12 +95,12 @@ public class RoomSidebar extends Panel {
                @Override
                protected void respond(AjaxRequestTarget target) {
                        try {
-                               String uid = 
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString(); 
+                               String uid = 
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
                                if (Strings.isEmpty(uid)) {
                                        return;
                                }
                                if (room.getClient().hasRight(Right.moderator)) 
{
-                                       Action a = 
Action.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTION).toString());
 
+                                       Action a = 
Action.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTION).toString());
                                        kickedClient = getOnlineClient(uid);
                                        if (kickedClient == null) {
                                                return;
@@ -121,11 +125,11 @@ public class RoomSidebar extends Panel {
                @Override
                protected void respond(AjaxRequestTarget target) {
                        try {
-                               String uid = 
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString(); 
+                               String uid = 
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
                                if (Strings.isEmpty(uid)) {
                                        return;
                                }
-                               Right right = 
Right.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_RIGHT).toString());
 
+                               Right right = 
Right.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_RIGHT).toString());
                                if (room.getClient().hasRight(Right.moderator)) 
{
                                        Client client = getOnlineClient(uid);
                                        if (client == null) {
@@ -158,11 +162,11 @@ public class RoomSidebar extends Panel {
                @Override
                protected void respond(AjaxRequestTarget target) {
                        try {
-                               String uid = 
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString(); 
+                               String uid = 
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
                                if (Strings.isEmpty(uid)) {
                                        return;
                                }
-                               Activity a = 
Activity.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTIVITY).toString());
 
+                               Activity a = 
Activity.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTIVITY).toString());
                                Client c = getOnlineClient(uid);
                                if (c == null) {
                                        return;
@@ -176,6 +180,15 @@ public class RoomSidebar extends Panel {
                                        }
                                }
                                if (activityAllowed(c, a, room.getRoom())) {
+                                       if (a == Activity.broadcastA && 
!c.isMicEnabled()) {
+                                               return;
+                                       }
+                                       if (a == Activity.broadcastV && 
!c.isCamEnabled()) {
+                                               return;
+                                       }
+                                       if (a == Activity.broadcastAV && 
!c.isMicEnabled() && !c.isCamEnabled()) {
+                                               return;
+                                       }
                                        Pod pod = c.getPod();
                                        
c.setPod(getRequest().getRequestParameters().getParameterValue(PARAM_POD).toOptionalInteger());
                                        if (pod != Pod.none && pod != 
c.getPod()) {
@@ -191,6 +204,23 @@ public class RoomSidebar extends Panel {
                        }
                }
        };
+       private final AbstractDefaultAjaxBehavior avSettings = new 
AbstractDefaultAjaxBehavior() {
+               private static final long serialVersionUID = 1L;
+
+               @Override
+               protected void respond(AjaxRequestTarget target) {
+                       StringValue s = 
getRequest().getRequestParameters().getParameterValue(PARAM_SETTINGS);
+                       if (!s.isEmpty()) {
+                               JSONObject o = new JSONObject(s.toString());
+                               room.getClient().setCam(o.getInt("cam"));
+                               room.getClient().setMic(o.getInt("mic"));
+                               boolean interview = Room.Type.interview == 
room.getRoom().getType();
+                               room.getClient().setWidth(interview ? 320 : 
o.getInt("width"));
+                               room.getClient().setHeight(interview ? 260 : 
o.getInt("height"));
+                               room.broadcast(target, room.getClient());
+                       }
+               }
+       };
 
        public RoomSidebar(String id, final RoomPanel room) {
                super(id);
@@ -204,12 +234,12 @@ public class RoomSidebar extends Panel {
                        public boolean isVisible() {
                                return true;
                        }
-                       
+
                        @Override
                        public IModel<String> getTitle() {
                                return Model.of(getString("613"));
                        }
-                       
+
                        @Override
                        public WebMarkupContainer getPanel(String containerId) {
                                return new UserFragment(containerId, 
"user-panel");
@@ -222,12 +252,12 @@ public class RoomSidebar extends Panel {
                        public boolean isVisible() {
                                return showFiles;
                        }
-                       
+
                        @Override
                        public IModel<String> getTitle() {
                                return Model.of(getString("614"));
                        }
-                       
+
                        @Override
                        public WebMarkupContainer getPanel(String containerId) {
                                return new FileFragment(containerId, 
"file-panel");
@@ -245,23 +275,24 @@ public class RoomSidebar extends Panel {
                                room.kickUser(target, kickedClient);
                        }
                });
-               add(toggleRight, toggleActivity, roomAction);
+               add(toggleRight, toggleActivity, roomAction, avSettings);
        }
-       
+
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
                response.render(new 
PriorityHeaderItem(getNamedFunction(FUNC_TOGGLE_RIGHT, toggleRight, 
explicit(PARAM_RIGHT), explicit(PARAM_UID))));
                response.render(new 
PriorityHeaderItem(getNamedFunction(FUNC_TOGGLE_ACTIVITY, toggleActivity, 
explicit(PARAM_ACTIVITY), explicit(PARAM_UID), explicit(PARAM_POD))));
                response.render(new 
PriorityHeaderItem(getNamedFunction(FUNC_ACTION, roomAction, 
explicit(PARAM_ACTION), explicit(PARAM_UID))));
+               response.render(new 
PriorityHeaderItem(getNamedFunction(FUNC_SETTINGS, avSettings, 
explicit(PARAM_SETTINGS))));
        }
-       
+
        private ListView<Client> updateUsers() {
                //TODO do we need sort??
                users.setList(getRoomClients(room.getRoom().getId()));
                return users;
        }
-       
+
        public class UserFragment extends Fragment {
                private static final long serialVersionUID = 1L;
 
@@ -271,7 +302,7 @@ public class RoomSidebar extends Panel {
                        add(updateUsers());
                }
        }
-       
+
        public class FileFragment extends Fragment {
                private static final long serialVersionUID = 1L;
 
@@ -300,7 +331,7 @@ public class RoomSidebar extends Panel {
        public boolean isShowFiles() {
                return showFiles;
        }
-       
+
        public void showUpload(IPartialPageRequestHandler handler) {
                upload.open(handler);
        }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java?rev=1778259&r1=1778258&r2=1778259&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
 Wed Jan 11 09:15:37 2017
@@ -72,6 +72,8 @@ public abstract class ClientIcon extends
                        //request/remove
                        cls.append(CLS_CLICKABLE);
                        add(AttributeAppender.replace("onclick", getScript()));
+               } else {
+                       add(AttributeAppender.replace("onclick", ""));
                }
                internalUpdate();
                add(AttributeAppender.replace("title", getTitle()));

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java?rev=1778259&r1=1778258&r2=1778259&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
 Wed Jan 11 09:15:37 2017
@@ -18,15 +18,13 @@
  */
 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.Activity;
 import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.room.RoomPanel.Action;
 
 public class RefreshIcon extends ClientIcon {
        private static final long serialVersionUID = 1L;
-       
+
        public RefreshIcon(String id, Client client, RoomPanel room) {
                super(id, client, room);
                mainCssClass = "restart ";
@@ -36,20 +34,20 @@ public class RefreshIcon extends ClientI
        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);
+               return client.hasActivity(Activity.broadcastA) || 
client.hasActivity(Activity.broadcastV);
        }
-       
+
        @Override
        protected String getScript() {
-               return String.format("%s('%s', '%s');", FUNC_ACTION, 
Action.refresh.name(), client.getUid());
+               return 
String.format("document.getElementById('lzapp').refreshAv('%s');", 
client.getUid());
        }
 
        @Override

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java?rev=1778259&r1=1778258&r2=1778259&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/CamActivityIcon.java
 Wed Jan 11 09:15:37 2017
@@ -37,7 +37,7 @@ public class CamActivityIcon extends Roo
        }
 
        @Override
-       protected boolean isClickable() {
-               return true;
+       public boolean isEnabled() {
+               return client.isCamEnabled();
        }
 }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java?rev=1778259&r1=1778258&r2=1778259&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/MicActivityIcon.java
 Wed Jan 11 09:15:37 2017
@@ -37,7 +37,7 @@ public class MicActivityIcon extends Roo
        }
 
        @Override
-       protected boolean isClickable() {
-               return true;
+       public boolean isEnabled() {
+               return client.isMicEnabled();
        }
 }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java?rev=1778259&r1=1778258&r2=1778259&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/activity/RoomActivityIcon.java
 Wed Jan 11 09:15:37 2017
@@ -31,6 +31,7 @@ import org.apache.openmeetings.web.room.
 public abstract class RoomActivityIcon extends ClientIcon {
        private static final long serialVersionUID = 1L;
        private static final String CLS_ENABLED = "enabled ";
+       private static final String CLS_DISABLED = "disabled";
        protected final Activity activity;
        protected final Pod pod = Pod.none;
 
@@ -50,9 +51,16 @@ public abstract class RoomActivityIcon e
        }
 
        @Override
+       protected boolean isClickable() {
+               return isEnabled();
+       }
+
+       @Override
        protected void internalUpdate() {
                setVisible(visible());
-               if (client.hasActivity(activity)) {
+               if (!isEnabled()) {
+                       cssClass.append(CLS_DISABLED);
+               } else if (client.hasActivity(activity)) {
                        cssClass.append(CLS_ENABLED);
                }
        }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css?rev=1778259&r1=1778258&r2=1778259&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css 
(original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/webapp/css/room.css 
Wed Jan 11 09:15:37 2017
@@ -228,6 +228,10 @@
 .activity.mic.ui-icon {
        background-image: url(images/microphone_enable.png);
 }
+.activity.ui-icon.disabled {
+       -webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */
+       filter: grayscale(100%);
+}
 .activity.mic.enabled.ui-icon {
        background-image: url(images/microphone_disable.png);
 }


Reply via email to