Author: solomax
Date: Tue Nov 18 08:51:42 2014
New Revision: 1640284

URL: http://svn.apache.org/r1640284
Log:
[OPENMEETINGS-1120] Activities panel initial check-in

Added:
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/activities.css
Modified:
    
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java
    
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
    
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
    
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/RoomManager.java
 Tue Nov 18 08:51:42 2014
@@ -446,7 +446,7 @@ public class RoomManager implements IRoo
                        r.setAllowRecording(allowRecording);
                        
                        r.setChatHidden(hideChat);
-                       r.setHideActivitiesAndActions(hideActivitiesAndActions);
+                       r.setActivitiesHidden(hideActivitiesAndActions);
                        r.setHideActionsMenu(hideActionsMenu);
                        r.setHideFilesExplorer(hideFilesExplorer);
                        r.setHideScreenSharing(hideScreenSharing);      
@@ -787,7 +787,7 @@ public class RoomManager implements IRoo
                        r.setAllowRecording(allowRecording);
                        
                        r.setChatHidden(hideChat);
-                       r.setHideActivitiesAndActions(hideActivitiesAndActions);
+                       r.setActivitiesHidden(hideActivitiesAndActions);
                        r.setHideActionsMenu(hideActionsMenu);
                        r.setHideFilesExplorer(hideFilesExplorer);
                        r.setHideScreenSharing(hideScreenSharing);

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
 Tue Nov 18 08:51:42 2014
@@ -177,7 +177,7 @@ public class LdapLoginManagement {
                        r = new InputStreamReader(new FileInputStream(new 
File(OmFileHelper.getConfDir(), ldapConfig.getConfigFileName())), "UTF-8");
                        config.load(r);
                } catch (Exception e) {
-                       log.error("Error on LdapLogin : Configurationdata 
couldnt be retrieved!");
+                       log.error("Error on LdapLogin : Configurationdata 
couldn't be retrieved!");
                        return null;
                } finally {
                        if (r != null) {

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 Tue Nov 18 08:51:42 2014
@@ -195,8 +195,8 @@ public class Room implements IDataProvid
        private boolean chatHidden = false;
 
        @Column(name = "hide_activities_and_actions")
-       @Element(data = true, required = false)
-       private Boolean hideActivitiesAndActions = false;
+       @Element(name = "hideActivitiesAndActions", data = true, required = 
false)
+       private boolean activitiesHidden = false;
 
        @Column(name = "hide_files_explorer")
        @Element(data = true, required = false)
@@ -469,12 +469,12 @@ public class Room implements IDataProvid
                this.chatHidden = chatHidden;
        }
 
-       public Boolean getHideActivitiesAndActions() {
-               return hideActivitiesAndActions;
+       public boolean isActivitiesHidden() {
+               return activitiesHidden;
        }
 
-       public void setHideActivitiesAndActions(Boolean 
hideActivitiesAndActions) {
-               this.hideActivitiesAndActions = hideActivitiesAndActions;
+       public void setActivitiesHidden(boolean activitiesHidden) {
+               this.activitiesHidden = activitiesHidden;
        }
 
        public Boolean getHideFilesExplorer() {

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 Tue Nov 18 08:51:42 2014
@@ -523,7 +523,7 @@ public class ImportInitvalues {
                r.setAllowRecording(true);
                
                r.setChatHidden(false);
-               r.setHideActivitiesAndActions(false);
+               r.setActivitiesHidden(false);
                r.setHideActionsMenu(false);
                r.setHideFilesExplorer(false);
                r.setHideScreenSharing(false);  

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 Tue Nov 18 08:51:42 2014
@@ -168,7 +168,7 @@ public class RoomForm extends AdminBaseF
 
                add(new CheckBox("hideTopBar"));
                add(new CheckBox("chatHidden"));
-               add(new CheckBox("hideActivitiesAndActions"));
+               add(new CheckBox("activitiesHidden"));
                add(new CheckBox("hideFilesExplorer"));
                add(new CheckBox("hideActionsMenu"));
                add(new CheckBox("hideScreenSharing"));

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
 Tue Nov 18 08:51:42 2014
@@ -143,7 +143,7 @@
                                                <label><wicket:ommessage 
key="1436" /></label><input type="checkbox" class="formcheckbox" 
wicket:id="chatHidden" />
                                            </div>
                             <div class="formelement">
-                                <label><wicket:ommessage key="1437" 
/></label><input type="checkbox" class="formcheckbox" 
wicket:id="hideActivitiesAndActions" />
+                                <label><wicket:ommessage key="1437" 
/></label><input type="checkbox" class="formcheckbox" 
wicket:id="activitiesHidden" />
                                            </div>
                             <div class="formelement">
                                 <label><wicket:ommessage key="1438" 
/></label><input type="checkbox" class="formcheckbox" 
wicket:id="hideFilesExplorer" />

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 Tue Nov 18 08:51:42 2014
@@ -62,6 +62,7 @@
                <div wicket:id="createPoll"></div>
                <div wicket:id="vote"></div>
                <div wicket:id="pollResults"></div>
+               <div wicket:id="activitiesPanel"></div>
        </div>
        <div wicket:id="accessDenied"></div>
 </wicket:panel>

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Tue Nov 18 08:51:42 2014
@@ -70,6 +70,8 @@ import org.apache.openmeetings.web.commo
 import org.apache.openmeetings.web.common.tree.MyRecordingTreeProvider;
 import org.apache.openmeetings.web.common.tree.PublicRecordingTreeProvider;
 import org.apache.openmeetings.web.pages.MainPage;
+import org.apache.openmeetings.web.room.activities.ActivitiesPanel;
+import org.apache.openmeetings.web.room.activities.Activity;
 import org.apache.openmeetings.web.room.message.RoomMessage;
 import org.apache.openmeetings.web.room.poll.CreatePollDialog;
 import org.apache.openmeetings.web.room.poll.PollResultsDialog;
@@ -224,6 +226,7 @@ public class RoomPanel extends BasePanel
        private final boolean showFiles;
        private final Button shareBtn = new Button("share");
        private final Button askBtn = new Button("ask");
+       private final ActivitiesPanel activities;
        
        public RoomPanel(String id, long _roomId) {
                this(id, getBean(RoomDao.class).get(_roomId));
@@ -379,6 +382,7 @@ public class RoomPanel extends BasePanel
                room.add(createPoll = new CreatePollDialog("createPoll", 
roomId));
                room.add(vote = new VoteDialog("vote", roomId));
                room.add(pollResults = new PollResultsDialog("pollResults", 
roomId));
+               room.add((activities = new ActivitiesPanel("activitiesPanel", 
roomId)).setVisible(!r.isActivitiesHidden()));
                add(room, accessDenied);
        }
 
@@ -401,11 +405,13 @@ public class RoomPanel extends BasePanel
                                                
updateUserMenuIcons(wsEvent.getHandler());
                                                break;
                                        case roomEnter:
+                                               
activities.addActivity(m.getSentUserId(), Activity.Type.roomEnter, 
wsEvent.getHandler());
                                                
updateUserMenuIcons(wsEvent.getHandler());
                                        case roomExit:
                                                //TODO check user/remove tab
                                                users.setList(getUsers());
                                                
wsEvent.getHandler().add(userList);
+                                               
activities.addActivity(m.getSentUserId(), Activity.Type.roomExit, 
wsEvent.getHandler());
                                                break;
                                        default:
                                                break;

Added: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html?rev=1640284&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
 (added)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
 Tue Nov 18 08:51:42 2014
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+         
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org";>
+<wicket:panel>
+       <div class="ui-widget-header">
+               <div onclick="toggleActivities();" class="control block 
ui-widget-header ui-state-active"><div class="ui-icon ui-icon-carat-1-n 
sort-icon"></div><div class="label"><wicket:ommessage key="1363"/></div></div>
+       </div>
+       <div wicket:id="container" class="area ui-widget-content"></div>
+</wicket:panel>
+</html>

Added: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java?rev=1640284&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
 (added)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
 Tue Nov 18 08:51:42 2014
@@ -0,0 +1,119 @@
+/*
+ * 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.activities;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
+
+import java.util.Map;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import org.apache.openmeetings.web.common.BasePanel;
+import org.apache.openmeetings.web.room.activities.Activity.Type;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.head.CssHeaderItem;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.markup.repeater.RepeatingView;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.red5.logging.Red5LoggerFactory;
+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 ACTION = "action";
+       private static final String PARAM_ROOM_ID = "roomid";
+       private enum Action {
+               accept, decline, close
+       };
+       private final Queue<Activity> activities = new 
ConcurrentLinkedQueue<Activity>();
+       private final long roomId;
+       private final WebMarkupContainer container = new 
WebMarkupContainer("container");
+       private final AbstractDefaultAjaxBehavior action = new 
AbstractDefaultAjaxBehavior() {
+               private static final long serialVersionUID = 1L;
+
+               @Override
+               protected void respond(AjaxRequestTarget target) {
+                       try {
+                               long uid = 
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toLong(); 
+                               long roomId = 
getRequest().getRequestParameters().getParameterValue(PARAM_ROOM_ID).toLong();
+                               assert(ActivitiesPanel.this.roomId == roomId);
+                               Action action = 
Action.valueOf(getRequest().getRequestParameters().getParameterValue(ACTION).toString());
+                               Activity a = null;//activities.get(uid);
+                               if (a != null) {
+                                       if (action == Action.close && 
(a.getType() == Type.roomEnter || a.getType() == Type.roomExit)) {
+                                               activities.remove(uid);
+                                       } else if (isModerator(getUserId(), 
roomId)) {
+                                               switch (a.getType()) {
+                                                       case askModeration:
+                                                               break;
+                                                       default:
+                                                               break;  
+                                               }
+                                       }
+                               } else {
+                                       log.error("It seems like we are being 
hacked!!!!");
+                               }
+                       } catch (Exception e) {
+                               log.error("Unexpected exception while 
processing activity action", e);
+                       }
+               }
+       };/*
+       private ListView<Activity> lv = new ListView<Activity>("activities", 
activities) {
+               @Override
+               protected void populateItem(ListItem<Activity> arg0) {
+                       // TODO Auto-generated method stub
+                       
+               }
+       };*/
+
+       public void addActivity(Long userId, Activity.Type type, 
AjaxRequestTarget target) {
+               if (getUserId() != userId) {
+                       Activity a = new Activity(userId,  type);
+                       //activities.put(a.getUid(), a);
+                       target.add(container);
+               }
+       }
+       
+       public ActivitiesPanel(String id, long roomId) {
+               super(id);
+               this.roomId = roomId;
+               setOutputMarkupPlaceholderTag(true);
+               setMarkupId(id);
+               add(container.setOutputMarkupId(true));
+               add(action);
+       }
+       
+       @Override
+       public void renderHead(IHeaderResponse response) {
+               super.renderHead(response);
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(new 
JavaScriptResourceReference(ActivitiesPanel.class, "activities.js"))));
+               response.render(CssHeaderItem.forUrl("css/activities.css"));
+       }
+}

Added: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java?rev=1640284&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
 (added)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/Activity.java
 Tue Nov 18 08:51:42 2014
@@ -0,0 +1,46 @@
+package org.apache.openmeetings.web.room.activities;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+public class Activity implements Serializable {
+       private static final long serialVersionUID = 1L;
+       public enum Type { //TODO maybe additional type is not necessary
+               roomEnter
+               , roomExit
+               , askModeration //TODO check
+       }
+       private String uid;
+       private Long sender;
+       private Type type;
+       
+       public Activity(Long sender, Type type) {
+               this.uid = UUID.randomUUID().toString();
+               this.sender = sender;
+               this.type = type;
+       }
+
+       public String getUid() {
+               return uid;
+       }
+
+       public void setUid(String uid) {
+               this.uid = uid;
+       }
+
+       public Long getSender() {
+               return sender;
+       }
+
+       public void setSender(Long sender) {
+               this.sender = sender;
+       }
+
+       public Type getType() {
+               return type;
+       }
+
+       public void setType(Type type) {
+               this.type = type;
+       }
+}

Added: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js?rev=1640284&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
 (added)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
 Tue Nov 18 08:51:42 2014
@@ -0,0 +1,40 @@
+/**
+ * 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.
+ */
+var closeBlock = "<span class='ui-icon ui-icon-close' 
role='presentation'></span>"
+       , closedHeight = "20px", openedHeight = "345px";
+function openActivities() {
+       if ($('#activitiesPanel').height() < 24) {
+               $('#activitiesPanel .control.block 
.ui-icon').removeClass('ui-icon-carat-1-n').addClass('ui-icon-carat-1-s');
+               $('#activitiesPanel').animate({height: openedHeight}, 1000);
+       }
+}
+function closeActivities() {
+       var activities = $('#activitiesPanel');
+       if ($('#activitiesPanel').height() > 24) {
+               $('#activitiesPanel .control.block 
.ui-icon').removeClass('ui-icon-carat-1-s').addClass('ui-icon-carat-1-n');
+               activities.animate({height: closedHeight}, 1000);
+       }
+}
+function toggleActivities() {
+       if ($('#activitiesPanel').height() < 24) {
+               openActivities();
+       } else {
+               closeActivities();
+       }
+}

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.html
 Tue Nov 18 08:51:42 2014
@@ -21,7 +21,7 @@
 <html xmlns:wicket="http://wicket.apache.org";>
 <wicket:panel>
        <div id="chat" class="ui-widget-header">
-               <div id="controlBlock" onclick="toggleChat();" 
class="ui-widget-header ui-state-active"><div id="control" class="ui-icon 
ui-icon-carat-1-n sort-icon"></div></div>
+               <div onclick="toggleChat();" class=" control block 
ui-widget-header ui-state-active"><div class="ui-icon ui-icon-carat-1-n 
sort-icon"></div><div class="label"><wicket:ommessage key="244"/></div></div>
                <div id="chatTabs">
                        <ul>
                                <li><a href="#chatTab-all"><wicket:ommessage 
key="1494"/></a></li>

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
 Tue Nov 18 08:51:42 2014
@@ -54,6 +54,7 @@ import org.apache.wicket.ajax.json.JSONE
 import org.apache.wicket.ajax.json.JSONObject;
 import 
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
@@ -66,7 +67,6 @@ import org.apache.wicket.protocol.ws.api
 import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
 import org.apache.wicket.protocol.ws.api.registry.PageIdKey;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.request.resource.ResourceReference;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
@@ -146,7 +146,6 @@ public class ChatPanel extends BasePanel
 
        public ChatPanel(String id) {
                super(id);
-               setOutputMarkupId(true);
                setOutputMarkupPlaceholderTag(true);
                setMarkupId(id);
 
@@ -198,14 +197,11 @@ public class ChatPanel extends BasePanel
                target.appendJavaScript(sb);
        }
        
-       private ResourceReference newResourceReference() {
-               return new JavaScriptResourceReference(ChatPanel.class, 
"chat.js");
-       }
-       
        @Override
        public void renderHead(IHeaderResponse response) {
                super.renderHead(response);
-               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(new 
JavaScriptResourceReference(ChatPanel.class, "chat.js"))));
+               response.render(CssHeaderItem.forUrl("css/chat.css"));
                response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("acceptMessage",
 acceptMessage, explicit(PARAM_ROOM_ID), explicit(PARAM_MSG_ID)), 
"acceptMessage")));
        }
        

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat.js
 Tue Nov 18 08:51:42 2014
@@ -20,7 +20,7 @@ var chatTabs, tabTemplate = "<li><a href
        , msgTemplate = "<div id='chat-msg-id-#{id}'><span 
class='from'>#{from}</span><span class='date'>#{sent}</span>#{msg}</div>"
        , acceptTemplate = "<span class='tick om-icon align-right clickable' 
data-msgid='#{msgid}' data-roomid='#{roomid}' onclick='var 
e=$(this);acceptMessage(e.data(\"roomid\"),e.data(\"msgid\"));e.parent().remove();'></span>"
        , closeBlock = "<span class='ui-icon ui-icon-close' 
role='presentation'></span>"
-       , closedHeight = "16px", openedHeight = "345px";
+       , closedHeight = "20px", openedHeight = "345px";
 $(function() {
        Wicket.Event.subscribe("/websocket/message", function(jqEvent, msg) {
                var m = jQuery.parseJSON(msg);
@@ -45,21 +45,21 @@ $(function() {
        });
 });
 function openChat() {
-       if ($('#chatPanel').height() < 20) {
-               $('#chat #controlBlock 
#control').removeClass('ui-icon-carat-1-n').addClass('ui-icon-carat-1-s');
+       if ($('#chatPanel').height() < 24) {
+               $('#chat .control.block 
.ui-icon').removeClass('ui-icon-carat-1-n').addClass('ui-icon-carat-1-s');
                $('#chatPanel, #chat').animate({height: openedHeight}, 1000);
        }
 }
 function closeChat() {
        var chat = $('#chatPanel');
-       if ($('#chatPanel').height() > 20) {
-               $('#chat #controlBlock 
#control').removeClass('ui-icon-carat-1-s').addClass('ui-icon-carat-1-n');
-               chat.animate({height: "16px"}, 1000);
+       if ($('#chatPanel').height() > 24) {
+               $('#chat .control.block 
.ui-icon').removeClass('ui-icon-carat-1-s').addClass('ui-icon-carat-1-n');
+               chat.animate({height: closedHeight}, 1000);
                $('#chatPanel, #chat').animate({height: closedHeight}, 1000);
        }
 }
 function toggleChat() {
-       if ($('#chatPanel').height() < 20) {
+       if ($('#chatPanel').height() < 24) {
                openChat();
        } else {
                closeChat();

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
 Tue Nov 18 08:51:42 2014
@@ -29,11 +29,10 @@ import java.util.Map;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Type;
+import org.apache.wicket.ajax.json.JSONException;
+import org.apache.wicket.ajax.json.JSONWriter;
 import 
org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
 import org.apache.wicket.validation.Validatable;
-import org.json.JSONException;
-import org.json.JSONWriter;
-
 import org.wicketstuff.select2.ChoiceProvider;
 import org.wicketstuff.select2.Response;
 

Added: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/activities.css
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/activities.css?rev=1640284&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/activities.css
 (added)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/activities.css
 Tue Nov 18 08:51:42 2014
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+#activitiesPanel {
+       position: fixed;
+       z-index: 2000;
+       bottom: 0px;
+       left: 10px;
+       width: 600px;
+       height: 20px;
+}
+#activitiesPanel .control.block .ui-icon {
+       text-align: center;
+}
+#activitiesPanel .control.block .label {
+       display: inline-block;
+       padding-left: 20px;
+}
+#activitiesPanel .area {
+       height: 310px;
+       overflow-y: auto;
+       padding: 5px;
+}
\ No newline at end of file

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css?rev=1640284&r1=1640283&r2=1640284&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css 
(original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/css/chat.css 
Tue Nov 18 08:51:42 2014
@@ -22,10 +22,10 @@
        bottom: 0px;
        right: 10px;
        width: 600px;
-       height: 16px;
+       height: 20px;
 }
 #chatPanel #chat {
-       height: 16px;
+       height: 20px;
 }
 #chatPanel #chat .btn-toolbar {
        margin-top: 2px;
@@ -48,10 +48,12 @@
        padding: 2px .5em;
        float: left;
 }
-#chatPanel #chat #controlBlock #control {
+#chatPanel #chat .control.block .ui-icon {
        text-align: center;
-       margin-left: 50%;
-       margin-right: 50%;
+}
+#chatPanel #chat .control.block .label {
+       display: inline-block;
+       padding-left: 20px;
 }
 #chatPanel #chat .messageArea .date {
     margin-right: 5px;


Reply via email to