Author: vdegtyarev
Date: Thu Jun 27 08:45:36 2013
New Revision: 1497244

URL: http://svn.apache.org/r1497244
Log:
OPENMEETINGS-673: SIP and Moderators fields are added.

Added:
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AddUsersForm.java
      - copied, changed from r1496728, 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/AddUsersForm.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AdminCommonUserForm.java
Removed:
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/AddUsersForm.java
Modified:
    openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupForm.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
    
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java

Modified: openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css?rev=1497244&r1=1497243&r2=1497244&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css 
(original)
+++ openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css Thu 
Jun 27 08:45:36 2013
@@ -125,6 +125,11 @@ table.adminListTable th {
        color: #ffffff;
 }
 
+table.adminListTableSmall th {
+       background: #AFCBFB;
+       color: #ffffff;
+}
+
 table.adminListTable th.two_column_layout_column1 {
        width: 136px;
 }
@@ -163,6 +168,24 @@ table.adminListTable th.three_column_lay
        width: 244px;
 }
 
+table.adminListTableSmall th.three_column_layout_column1 {
+       width: 50px;
+}
+
+table.adminListTableSmall th.three_column_layout_column2 {
+       width: 50px;
+}
+
+table.adminListTableSmall th.three_column_layout_column3 {
+       width: 218px;
+}
+table.adminListTableSmall th.three_column_layout_column4 {
+       width: 150px;
+}
+table.adminListTableSmall th.three_column_layout_column5 {
+       width: 50px;
+}
+
 table.adminListTable td.three_column_layout_column1 {
        width: 96px;
 }
@@ -175,6 +198,24 @@ table.adminListTable td.three_column_lay
        width: 244px;
 }
 
+table.adminListTableSmall td.three_column_layout_column1 {
+       width: 50px;
+}
+
+table.adminListTableSmall td.three_column_layout_column2 {
+       width: 50px;
+}
+
+table.adminListTableSmall td.three_column_layout_column3 {
+       width: 218px;
+}
+table.adminListTableSmall td.three_column_layout_column4 {
+       width: 150px;
+}
+table.adminListTableSmall td.three_column_layout_column5 {
+       width: 50px;
+}
+
 table.adminListTable td div.three_column_layout_divcolumn1 {
        word-wrap: break-word;
        width: 96px;
@@ -190,6 +231,26 @@ table.adminListTable td div.three_column
        width: 244px;
 }
 
+table.adminListTableSmall td div.three_column_layout_divcolumn1 {
+       width: 50px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn2 {
+       width: 50px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn3 {
+       width: 218px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn4 {
+       width: 150px;
+}
+
+table.adminListTableSmall td div.three_column_layout_divcolumn5 {
+       width: 50px;
+}
+
 table.adminListTable th.four_column_layout_column1 {
        width: 96px;
 }
@@ -246,10 +307,18 @@ table.adminListTable tr.even {
        background-color: #EDF2FF;
 }
 
+table.adminListTableSmall tr.even {
+       background-color: #EDF2FF;
+}
+
 table.adminListTable tr.odd {
        background-color: #F2FAFF;
 }
 
+table.adminListTableSmall tr.odd {
+       background-color: #F2FAFF;
+}
+
 table.adminListTable tr:hover {
        background-color: #CCDCE8;
 }
@@ -266,6 +335,14 @@ div.tableWrapper {
        overflow-y: scroll;
 }
 
+div.tableWrapperSmall {
+       background-color: #FFFFFF;
+       border: solid 1px #aacfe4;
+       width: 536px;
+       height: 100px;
+       overflow-y: scroll;
+}
+
 .adminPanelColumnForm {
        display: inline-block;
        vertical-align: top;

Copied: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AddUsersForm.java
 (from r1496728, 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/AddUsersForm.java)
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AddUsersForm.java?p2=openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AddUsersForm.java&p1=openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/AddUsersForm.java&r1=1496728&r2=1497244&rev=1497244&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/AddUsersForm.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AddUsersForm.java
 Thu Jun 27 08:45:36 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.admin.groups;
+package org.apache.openmeetings.web.admin;
 
 import static org.apache.openmeetings.web.admin.groups.GroupUsersPanel.getUser;
 
@@ -24,8 +24,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.openmeetings.data.user.dao.UsersDao;
-import org.apache.openmeetings.persistence.beans.domain.Organisation;
-import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
 import org.apache.openmeetings.persistence.beans.user.User;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
@@ -41,12 +39,11 @@ import org.apache.wicket.model.PropertyM
 
 public class AddUsersForm extends Form<Void> {
        private static final long serialVersionUID = -2458265250684437277L;
-       private Organisation organisation;
        private String userSearchText;
        private List<User> usersInList = new ArrayList<User>();
        private List<User> usersToAdd = new ArrayList<User>();
        
-       public AddUsersForm(String id, final GroupForm groupForm) {
+       public AddUsersForm(String id, final AdminCommonUserForm<?> commonForm) 
{
                super(id);
                
                IModel<List<User>> listUsersModel = new 
PropertyModel<List<User>>(AddUsersForm.this, "usersInList");
@@ -81,25 +78,8 @@ public class AddUsersForm extends Form<V
                        private static final long serialVersionUID = 
5553555064487161840L;
 
                        protected void onAfterSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               UsersDao userDao = 
Application.getBean(UsersDao.class);
-                               for (User u : usersToAdd) {
-                                       List<Organisation_Users> orgUsers = 
u.getOrganisation_users();
-                                       boolean found = false;
-                                       for (Organisation_Users ou : orgUsers) {
-                                               if 
(ou.getOrganisation().getOrganisation_id().equals(organisation.getOrganisation_id()))
 {
-                                                       found = true;
-                                                       break;
-                                               }
-                                       }
-                                       if (!found) {
-                                               Organisation_Users orgUser = 
new Organisation_Users(organisation);
-                                               orgUser.setDeleted(false);
-                                               orgUsers.add(orgUser);
-                                               userDao.update(u, 
WebSession.getUserId());
-                                       }
-                               }
-                               
target.appendJavaScript("$('#addUsers').dialog('close');");
-                               groupForm.updateView(target);
+                               commonForm.submitView(target, usersToAdd);
+                               commonForm.updateView(target);
                        }
                });
        }
@@ -109,7 +89,4 @@ public class AddUsersForm extends Form<V
                usersInList.clear();
        }
        
-       public void setOrganisation(Organisation org) {
-               organisation = org;
-       }
 }

Added: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AdminCommonUserForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AdminCommonUserForm.java?rev=1497244&view=auto
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AdminCommonUserForm.java
 (added)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/AdminCommonUserForm.java
 Thu Jun 27 08:45:36 2013
@@ -0,0 +1,23 @@
+package org.apache.openmeetings.web.admin;
+
+import java.util.List;
+
+import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.model.IModel;
+
+public abstract class AdminCommonUserForm<T> extends AdminBaseForm<T> {
+
+       private static final long serialVersionUID = -827309847606809118L;
+
+       @SuppressWarnings("unchecked")
+       public AdminCommonUserForm(String id, IModel<?> object) {
+               super(id, (IModel<T>) object);
+               // TODO Auto-generated constructor stub
+       }
+       
+       public abstract void updateView(AjaxRequestTarget target);
+
+       public abstract void submitView(AjaxRequestTarget target, List<User> 
usersToAdd);
+
+}

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupForm.java?rev=1497244&r1=1497243&r2=1497244&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupForm.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupForm.java
 Thu Jun 27 08:45:36 2013
@@ -21,9 +21,15 @@ package org.apache.openmeetings.web.admi
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
+import java.util.List;
+
 import org.apache.openmeetings.data.user.dao.OrganisationDao;
+import org.apache.openmeetings.data.user.dao.UsersDao;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
-import org.apache.openmeetings.web.admin.AdminBaseForm;
+import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
+import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.web.admin.AdminCommonUserForm;
+import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.OmAjaxFormValidatingBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -34,7 +40,7 @@ import org.apache.wicket.model.CompoundP
 import org.apache.wicket.model.Model;
 import org.apache.wicket.util.time.Duration;
 
-public class GroupForm extends AdminBaseForm<Organisation> {
+public class GroupForm extends AdminCommonUserForm<Organisation> {
        private static final long serialVersionUID = -1720731686053912700L;
        private GroupUsersPanel usersPanel;
        private WebMarkupContainer groupList;
@@ -53,11 +59,36 @@ public class GroupForm extends AdminBase
                OmAjaxFormValidatingBehavior.addToAllFormComponents(this, 
"keydown", Duration.ONE_SECOND);
        }
        
-       void updateView(AjaxRequestTarget target) {
+       @Override
+       public void updateView(AjaxRequestTarget target) {
                usersPanel.update(getOrgId());
                target.add(this);
                target.appendJavaScript("groupsInit();");
        }
+
+       @Override
+       public void submitView(AjaxRequestTarget target, List<User> usersToAdd) 
{
+               // TODO Auto-generated method stub
+               UsersDao userDao = Application.getBean(UsersDao.class);
+               Organisation organisation = getModelObject();
+               for (User u : usersToAdd) {
+                       List<Organisation_Users> orgUsers = 
u.getOrganisation_users();
+                       boolean found = false;
+                       for (Organisation_Users ou : orgUsers) {
+                               if 
(ou.getOrganisation().getOrganisation_id().equals(organisation.getOrganisation_id()))
 {
+                                       found = true;
+                                       break;
+                               }
+                       }
+                       if (!found) {
+                               Organisation_Users orgUser = new 
Organisation_Users(organisation);
+                               orgUser.setDeleted(false);
+                               orgUsers.add(orgUser);
+                               userDao.update(u, WebSession.getUserId());
+                       }
+               }
+               target.appendJavaScript("$('#addUsers').dialog('close');");
+       }
        
        private long getOrgId() {
                return getModelObject().getOrganisation_id() != null ? 
getModelObject().getOrganisation_id() : 0;

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupsPanel.java?rev=1497244&r1=1497243&r2=1497244&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
 Thu Jun 27 08:45:36 2013
@@ -21,12 +21,13 @@ package org.apache.openmeetings.web.admi
 import org.apache.openmeetings.data.user.dao.OrganisationDao;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
 import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
+import org.apache.openmeetings.web.admin.AddUsersForm;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
-import org.apache.openmeetings.web.data.SearchableDataProvider;
 import org.apache.openmeetings.web.data.OrderByBorder;
+import org.apache.openmeetings.web.data.SearchableDataProvider;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -80,11 +81,10 @@ public class GroupsPanel extends AdminPa
                                        
addUsersBtn.add(AttributeModifier.replace("class", "formNewButton"));
                                }
                                addUsersBtn.setEnabled(!orgEmpty);
-                               addUsersForm.setOrganisation(getModelObject());
                        }
                        
                        @Override
-                       void updateView(AjaxRequestTarget target) {
+                       public void updateView(AjaxRequestTarget target) {
                                super.updateView(target);
                                target.add(addUsersBtn);
                        }

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1497244&r1=1497243&r2=1497244&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 Thu Jun 27 08:45:36 2013
@@ -23,21 +23,30 @@ import static org.apache.openmeetings.we
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 import org.apache.openmeetings.data.conference.RoomManager;
 import org.apache.openmeetings.data.conference.dao.RoomDao;
+import org.apache.openmeetings.data.conference.dao.RoomModeratorsDao;
 import org.apache.openmeetings.data.user.OrganisationManager;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
 import org.apache.openmeetings.persistence.beans.room.Room;
+import org.apache.openmeetings.persistence.beans.room.RoomModerator;
 import org.apache.openmeetings.persistence.beans.room.RoomOrganisation;
 import org.apache.openmeetings.persistence.beans.room.RoomType;
-import org.apache.openmeetings.web.admin.AdminBaseForm;
+import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.web.admin.AdminCommonUserForm;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.ConfirmCallListener;
 import org.apache.openmeetings.web.common.OmAjaxFormValidatingBehavior;
+import org.apache.wicket.AttributeModifier;
+import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
 import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
@@ -47,16 +56,22 @@ import org.apache.wicket.markup.html.for
 import org.apache.wicket.markup.html.form.RequiredTextField;
 import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.util.time.Duration;
 
-public class RoomForm extends AdminBaseForm<Room> {
+public class RoomForm extends AdminCommonUserForm<Room> {
        private static final long serialVersionUID = 1L;
        private final static List<Long> DROPDOWN_NUMBER_OF_PARTICIPANTS = 
Arrays.asList(2L, 4L, 6L, 8L, 10L, 12L, 14L, 16L, 20L, 25L, 32L, 50L,
                        100L, 150L, 200L, 500L, 1000L);
        private final WebMarkupContainer roomList;
-
+       private final TextField<String> confno;
+       private final CheckBox sipEnabled;
+       final WebMarkupContainer moderatorContainer;
+       final ListView<RoomModerator> moderators;
+       List<RoomModerator> result = null;
        public RoomForm(String id, WebMarkupContainer roomList, final Room 
room) {
                super(id, new CompoundPropertyModel<Room>(room));
                this.roomList = roomList;
@@ -106,6 +121,7 @@ public class RoomForm extends AdminBaseF
                add(demoTime);
                add(new CheckBox("allowUserQuestions"));
                add(new CheckBox("isAudioOnly"));
+               add(new CheckBox("allowFontStyles"));
                add(new CheckBox("isClosed"));
                add(new TextField<String>("redirectURL"));
                add(new CheckBox("waitForRecording"));
@@ -122,22 +138,76 @@ public class RoomForm extends AdminBaseF
                add(new CheckBox("chatModerated"));
                add(new CheckBox("chatOpened"));
                add(new CheckBox("filesOpened"));
-               add(new CheckBox("autoVideoSelect"));
+               add(new CheckBox("autoVideoSelect"));   
                
+               moderators =    new ListView<RoomModerator>("moderators", 
result) {
+                       private static final long serialVersionUID = 
-7935197812421549677L;
+
+                       @Override
+                       protected void populateItem(final 
ListItem<RoomModerator> item) {
+                               final RoomModerator moderator = 
item.getModelObject();
+                               item.add(new Label("isSuperModerator", "" + 
moderator.getIsSuperModerator()))
+                                       .add(new Label("userId", "" + 
moderator.getUser().getUser_id()))
+                                       .add(new Label("uName", "" + 
moderator.getUser().getFirstname() + " " + moderator.getUser().getLastname()))
+                                       .add(new Label("email", ""+ 
moderator.getUser().getAdresses().getEmail()))
+                                       .add(new 
WebMarkupContainer("delete").add(new AjaxEventBehavior("onclick"){
+                                       private static final long 
serialVersionUID = 1L;
+
+                                       @Override
+                                       protected void 
updateAjaxAttributes(AjaxRequestAttributes attributes) {
+                                               
super.updateAjaxAttributes(attributes);
+                                               
attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
+                                       }
+                                       
+                                       @Override
+                                       protected void 
onEvent(AjaxRequestTarget target) {
+                                               
Application.getBean(RoomModeratorsDao.class).removeRoomModeratorByUserId(moderator.getRoomModeratorsId());
+                                               updateModerators(target);
+                                       }
+                               })); 
+
+                               item.add(AttributeModifier.replace("class", 
(item.getIndex() % 2 == 1) ? "even" : "odd"));
+                       }
+               };
+
                // FIXME: Room user moderator list
+               CheckBox isModeratedRoom = new CheckBox("isModeratedRoom");
+        add(isModeratedRoom.setOutputMarkupId(true));
 
-               add(new CheckBox("isModeratedRoom"));
                
-
+               moderatorContainer = new 
WebMarkupContainer("moderatorContainer");
+               
+               add(moderatorContainer.add(moderators).setOutputMarkupId(true));
+               
+               confno = new TextField<String>("confno");
+               add(confno);
+               add(new TextField<String>("pin"));
+               add(new TextField<String>("ownerId"));
+               sipEnabled = new CheckBox("sipEnabled");
+               add(sipEnabled.setOutputMarkupId(true).add(new 
AjaxEventBehavior("onclick") {
+                       private static final long serialVersionUID = 
-1206667381066917517L;
+
+                       @Override
+                       protected void onEvent(AjaxRequestTarget target) {
+                               
sipEnabled.setModelObject(!sipEnabled.getModelObject());
+                               if (sipEnabled.getModelObject() && 
confno.getModelObject() == null){
+                                       
getBean(RoomDao.class).update(getModelObject(), getUserId());
+                               }
+                               updateView(target);                             
+                       }
+               }));
+               
                // attach an ajax validation behavior to all form component's 
keydown
                // event and throttle it down to once per second
                OmAjaxFormValidatingBehavior.addToAllFormComponents(this, 
"keydown", Duration.ONE_SECOND);
        }
 
-       private void updateView(AjaxRequestTarget target) {
-               target.add(this);
-               target.add(roomList);
-               target.appendJavaScript("omRoomPanelInit();");
+       public void updateModerators(AjaxRequestTarget target) {
+               long roomId = (getModelObject().getRooms_id() != null ? 
getModelObject().getRooms_id() : 0);  
+               RoomModeratorsDao moderatorsDao = 
getBean(RoomModeratorsDao.class);
+               final List<RoomModerator> result = 
moderatorsDao.getRoomModeratorByRoomId(roomId);
+               moderators.setDefaultModelObject(result);
+               target.add(moderatorContainer);
        }
        
        @Override
@@ -191,4 +261,43 @@ public class RoomForm extends AdminBaseF
        protected void onDeleteError(AjaxRequestTarget target, Form<?> form) {
                // TODO Auto-generated method stub
        }
+
+       @Override
+       public void updateView(AjaxRequestTarget target) {
+               target.add(this);
+               target.add(roomList);
+               confno.setEnabled(sipEnabled.getModelObject());
+               target.add(confno);
+               updateModerators(target);
+               target.appendJavaScript("omRoomPanelInit();");
+       }
+
+       @Override
+       public void submitView(AjaxRequestTarget target, List<User> usersToAdd) 
{
+               // TODO Auto-generated method stub
+               long roomId = getModelObject().getRooms_id();
+               RoomModeratorsDao moderatorsDao = 
getBean(RoomModeratorsDao.class);
+               List<RoomModerator> moderators = 
moderatorsDao.getRoomModeratorByRoomId(roomId);
+               result = (result == null) ? new ArrayList<RoomModerator>() : 
result;
+               for (User u : usersToAdd) {
+                       boolean found = false;
+                       for ( RoomModerator rm : moderators) {
+                               if 
(rm.getUser().getUser_id().equals(u.getUser_id())) {
+                                       found = true;
+                                       break;
+                               }
+                       }
+                       if (!found) {
+                               RoomModerator rModerator = new RoomModerator();
+                               rModerator.setUser(u);
+                               rModerator.setIsSuperModerator(false);
+                               rModerator.setStarttime(new Date());
+                               rModerator.setDeleted(false);
+                               rModerator.setRoomId(roomId);
+                               result.add(rModerator);
+                               moderatorsDao.addRoomModeratorByUserId(u, 
false, roomId);
+                       }
+               }
+               target.appendJavaScript("$('#addModerators').dialog('close');");
+       }
 }

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html?rev=1497244&r1=1497243&r2=1497244&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
 Thu Jun 27 08:45:36 2013
@@ -22,10 +22,22 @@
        <wicket:head>
           <script type="text/javascript">
            function omRoomPanelInit() {
+                               $('#addModerators').dialog({
+                                       closeOnEscape: true
+                                       , autoOpen: false
+                                       , resizable: false
+                                       , width: 400
+                                       , modal: true
+                               });
                var documentHeight = $(document).height();
                $('#adminForm').height(documentHeight-114);
                $('#adminTable').height(documentHeight-144);
            }
+                       
+                       function addModerators() {
+                               $('#addModerators :text').val('');
+                               $('#addModerators').dialog('open');
+                       };
        </script>
     </wicket:head>
        <wicket:panel>
@@ -117,10 +129,11 @@
                                            </div>
                                            <div class="formelement">
                                                <div 
class="info-text"><wicket:ommessage key="1077" /></div>
-                                <br/>
+                                               <label><wicket:ommessage 
key="1531" /></label><input type="checkbox" class="formcheckbox" 
wicket:id="allowFontStyles" />
+                                           </div>
+                                           <div class="formelement">
                                                    <div 
class="info-text"><wicket:ommessage key="1101" /></div>
-                                <br/>
-                                               <label><wicket:ommessage 
key="1076" /></label><input type="checkbox" class="formcheckbox" 
wicket:id="isClosed" />
+                                               <label><wicket:ommessage 
key="1099" /></label><input type="checkbox" class="formcheckbox" 
wicket:id="isClosed" />
                                            </div>
                                            <div class="formelement">
                                                <label><wicket:ommessage 
key="1100" /></label><input type="text" wicket:id="redirectURL" />
@@ -128,10 +141,10 @@
                                                        <div 
class="formelement">
                                                            <div 
class="info-text"><wicket:ommessage key="1102" /></div>
                                 <br/>
-                                               <label><wicket:ommessage 
key="1076" /></label><input type="checkbox" class="formcheckbox" 
wicket:id="waitForRecording" />
+                                               <label><wicket:ommessage 
key="1355" /></label><input type="checkbox" class="formcheckbox" 
wicket:id="waitForRecording" />
                                            </div>
                                            <div class="formelement">
-                                <label><wicket:ommessage key="1076" 
/></label><input type="checkbox" class="formcheckbox" 
wicket:id="allowRecording" />
+                                <label><wicket:ommessage key="1356" 
/></label><input type="checkbox" class="formcheckbox" 
wicket:id="allowRecording" />
                                            </div>
                                                </fieldset>
                                                
@@ -174,23 +187,91 @@
                             <div class="formelement">
                                 <label><wicket:ommessage key="1526" 
/></label><input type="checkbox" class="formcheckbox" 
wicket:id="autoVideoSelect" />
                                            </div>
+                                               </fieldset>
+                                               
+                                               <!-- Users in this Room -->
+                                               <fieldset>
+                                               </fieldset>
+                                               
+                                               <!-- Default moderators -->
+                                               <fieldset>
                             <div class="formelement">
-                                           <!-- 
-                                           FIXME: add user moderator list
-                                           <wicket:ommessage key="587" /> 
<select wicket:id="moderators"/>
-                                           <br/>
-                                            -->
-                                               <div 
class="info-text"><wicket:ommessage key="823" /></div>
+                                               <div 
class="info-text"><wicket:ommessage key="823" /></div>
                                 <br/>
                                                <label><wicket:ommessage 
key="640" /></label><input type="checkbox" class="formcheckbox" 
wicket:id="isModeratedRoom" />
+                                <div wicket:id="addModerator" 
class="formNewButton disabled" wicket:ommessage="title:821"><input/></div>
                                            </div>
                                <div class="formelement">
                                                    <wicket:ommessage key="816" 
/>
                                            </div>
+                                                       <table 
class="adminListTableSmall">
+                                                               <thead>
+                                                                       <tr>
+                                                                               
<th class="three_column_layout_column1"><wicket:ommessage key="817" /></th>
+                                                                               
<th class="three_column_layout_column2"><wicket:ommessage key="818" /></th>
+                                                                               
<th class="three_column_layout_column3"><wicket:ommessage key="819" /></th>
+                                                                               
<th class="three_column_layout_column4"><wicket:ommessage key="820" /></th>
+                                                                               
<th class="three_column_layout_column5"><wicket:ommessage key="827" /></th>
+                                                                       </tr>   
+                                                               </thead>
+                                                       </table>
+                                                       <div 
class="tableWrapperSmall" id="adminTableSmall">
+                                                               <table 
class="adminListTableSmall">
+                                                                       <tbody 
wicket:id="moderatorContainer">          
+                                                                       <tr 
wicket:id="moderators">
+                                                                               
        <td class="three_column_layout_column1"><div 
class="three_column_layout_divcolumn1"><span 
wicket:id="isSuperModerator"></span></div></td>
+                                                                               
        <td class="three_column_layout_column2"><div 
class="three_column_layout_divcolumn2"><span 
wicket:id="userId"></span></div></td>
+                                                                               
        <td class="three_column_layout_column3"><div 
class="three_column_layout_divcolumn3"><span 
wicket:id="uName"></span></div></td>
+                                                                               
        <td class="three_column_layout_column4"><div 
class="three_column_layout_divcolumn4"><span 
wicket:id="email"></span></div></td>
+                                                               <td 
style="width: 50px"><div style="width: 50px"><div class="formCancelButton" 
wicket:id="delete" wicket:ommessage="title:274"><input/></div></div></td>
+                                                                               
</tr>
+                                                                       </tbody>
+                                                               </table>
+                                                       </div>
+                                               </fieldset>
+                                           <!--SIP Settings -->
+                                               <fieldset>
+                                                       
<legend><wicket:ommessage key="1001" /></legend>
+                                           <div class="formelement">
+                                               <div 
class="info-text"><wicket:ommessage key="1002" /></div>
+                                <br/>
+                            </div>
+                                           <div class="formelement">
+                                               <label><wicket:ommessage 
key="1003" /></label><input type="text" wicket:id="confno" />
+                                                       </div>
+                                           <div class="formelement">
+                                               <label><wicket:ommessage 
key="1004" /></label><input type="text" wicket:id="pin" />
+                                                       </div>
+                                           <div class="formelement">
+                                               <label><wicket:ommessage 
key="1308" /></label><input type="text" wicket:id="ownerId" />
+                                                       </div>
+                                           <div class="formelement">
+                                               <label><wicket:ommessage 
key="1538" /></label><input type="checkbox" class="formcheckbox" 
wicket:id="sipEnabled" />
+                                           </div>
                                                </fieldset>
                                        </div>
                                </form>
                        </div>
                </div>
+               <div id="addModerators" wicket:ommessage="title:821" 
style="display: none;">
+                       <form wicket:id="addModerators">
+                               <table>
+                                       <tr>
+                                               <td><wicket:ommessage key="181" 
/></td>
+                                               <td><input type="text" 
wicket:id="searchText" /></td>
+                                       </tr>
+                                       <tr>
+                                               <td style="text-align: 
right"><input type="button" wicket:id="search" /></td>
+                                       </tr>
+                                       <tr>
+                                               <td><wicket:ommessage key="183" 
/></td>
+                                               <td><select wicket:id="users" 
style="width: 200px; height: 300px;"></select></td>
+                                       </tr>
+                                       <tr>
+                                               <td colspan="2" 
style="text-align: right"><input type="button" wicket:id="add" /></td>
+                                       </tr>
+                               </table>
+                       </form>
+               </div>
        </wicket:panel>
 </html>

Modified: 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java?rev=1497244&r1=1497243&r2=1497244&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
 Thu Jun 27 08:45:36 2013
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.admi
 
 import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.persistence.beans.room.Room;
+import org.apache.openmeetings.web.admin.AddUsersForm;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
@@ -36,6 +37,7 @@ import org.apache.wicket.markup.repeater
 public class RoomsPanel extends AdminPanel {
 
        private static final long serialVersionUID = -1L;
+       private AddUsersForm addModeratorsForm;
        private RoomForm form;
        
        @Override
@@ -59,8 +61,9 @@ public class RoomsPanel extends AdminPan
                                        private static final long 
serialVersionUID = -8069413566800571061L;
 
                                        protected void 
onEvent(AjaxRequestTarget target) {
-                                               form.setModelObject(room);
                                                form.hideNewRecord();
+                                               form.setModelObject(room);
+                                               form.updateView(target);
                                                target.add(form);
                                                
target.appendJavaScript("omRoomPanelInit();");
                                        }
@@ -84,10 +87,42 @@ public class RoomsPanel extends AdminPan
                                target.add(listContainer);
                        }
                });
+
+               final WebMarkupContainer addModerator = new 
WebMarkupContainer("addModerator");
+               addModerator.add(new AjaxEventBehavior("onclick") {
+                       private static final long serialVersionUID = 
1818116963707864134L;
+
+                       protected void onEvent(AjaxRequestTarget target) {
+                       addModeratorsForm.clear();
+                       target.add(addModeratorsForm);
+                       target.appendJavaScript("addModerators();");
+               }
+        });
                
-               form = new RoomForm("form", listContainer, new Room());
-               form.showNewRecord();
-        add(form);
+               form = new RoomForm("form", listContainer, new Room()){
+                       private static final long serialVersionUID = 
3186201157375166657L;
+
+                       @Override
+                       protected void onModelChanged() {
+                               super.onModelChanged();
+                               boolean roomEmpty = (getModelObject() == null 
|| getModelObject().getRooms_id() == null);
+                               if (roomEmpty) {
+                                       
addModerator.add(AttributeModifier.replace("class", "formNewButton disabled"));
+                               } else {
+                                       
addModerator.add(AttributeModifier.replace("class", "formNewButton"));
+                               }
+                               addModerator.setEnabled(!roomEmpty);
+                       }
+                       
+                       /*@Override
+                       public void updateView(AjaxRequestTarget target) {
+                               super.updateView(target);
+                               target.add(addModerator);
+                       }*/
+               };
                
+        add(form.add(addModerator.setOutputMarkupId(true)));
+        addModeratorsForm = new AddUsersForm("addModerators", form);
+               add(addModeratorsForm);
        }
 }


Reply via email to