You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2014/06/07 09:45:58 UTC

svn commit: r1601073 [3/6] - in /openmeetings: branches/3.0.x/ branches/3.0.x/docs/ branches/3.0.x/src/axis/java/org/apache/openmeetings/axis/services/ branches/3.0.x/src/db/java/org/apache/openmeetings/db/dao/basic/ branches/3.0.x/src/db/java/org/apac...

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java Sat Jun  7 07:45:55 2014
@@ -18,6 +18,9 @@
  */
 package org.apache.openmeetings.web.admin.groups;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.openmeetings.db.dao.user.OrganisationUserDao;
 import org.apache.openmeetings.db.entity.user.Organisation_Users;
 import org.apache.openmeetings.db.entity.user.User;
@@ -27,57 +30,49 @@ import org.apache.openmeetings.web.app.W
 import org.apache.openmeetings.web.common.ConfirmCallListener;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.SearchableDataProvider;
-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.ajax.form.OnChangeAjaxBehavior;
+import org.apache.wicket.behavior.AttributeAppender;
 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.panel.Panel;
 import org.apache.wicket.markup.repeater.Item;
-import org.apache.wicket.model.Model;
 
 public class GroupUsersPanel extends Panel {
-	private static final long serialVersionUID = -1813488722913433227L;
+	private static final long serialVersionUID = 1L;
 	private long organisationId;
-	
-	public static String getUser(User u) {
-		return u.getLogin() + " [" + u.getFirstname() + ", " + u.getLastname() + "]";
-	}
+	private List<Organisation_Users> users2add = new ArrayList<Organisation_Users>();
 	
 	public GroupUsersPanel(String id, long orgId) {
 		super(id);
 		this.organisationId = orgId;
 		setOutputMarkupId(true);
 		
-		SearchableDataView<Organisation_Users> dataView = new SearchableDataView<Organisation_Users>("userList", new SearchableDataProvider<Organisation_Users>(OrganisationUserDao.class){
+		SearchableDataView<Organisation_Users> dataView = new SearchableDataView<Organisation_Users>("userList", new OrgUserDataProvider()) {
 			private static final long serialVersionUID = 1L;
 
-			protected OrganisationUserDao getDao() {
-				return (OrganisationUserDao)super.getDao();
-			}
-			
-			public long size() {
-				return search == null ? getDao().count(organisationId) : getDao().count(organisationId, search);
-			}
-			
-			public java.util.Iterator<? extends Organisation_Users> iterator(long first, long count) {
-				return (search == null && getSort() == null
-						? getDao().get(organisationId, (int)first, (int)count)
-						: getDao().get(organisationId, search, (int)first, (int)count, getSortStr())).iterator();
-			}
-		}) {
-			private static final long serialVersionUID = 8715559628755439596L;
-
 			@Override
 			protected void populateItem(Item<Organisation_Users> item) {
 				final Organisation_Users orgUser = item.getModelObject();
 				User u = orgUser.getUser();
-				if (u != null) {
-					item.add(new Label("label", Model.of(getUser(u))));
-				} else {
-					item.add(new Label("label", Model.of("")));
+				item.add(new CheckBox("isModerator").add(new OnChangeAjaxBehavior() {
+					private static final long serialVersionUID = 1L;
+
+					@Override
+					protected void onUpdate(AjaxRequestTarget target) {
+						if (orgUser.getOrganisation_users_id() != null) {
+							Application.getBean(OrganisationUserDao.class).update(orgUser, WebSession.getUserId());
+						}
+					}
+				}));
+				Label label = new Label("label", u == null ? "" : GroupForm.formatUser(u));
+				if (orgUser.getOrganisation_users_id() == null) {
+					label.add(AttributeAppender.append("class", "newItem"));
 				}
+				item.add(label);
 				item.add(new WebMarkupContainer("deleteUserBtn").add(new AjaxEventBehavior("onclick"){
 					private static final long serialVersionUID = 1L;
 
@@ -89,16 +84,25 @@ public class GroupUsersPanel extends Pan
 					
 					@Override
 					protected void onEvent(AjaxRequestTarget target) {
-						Application.getBean(OrganisationUserDao.class).delete(orgUser, WebSession.getUserId());
+						if (orgUser.getOrganisation_users_id() == null) {
+							for (int i = 0; i < users2add.size(); ++i) {
+								//FIXME ineffective
+								if (users2add.get(i).getUser().getUser_id().equals(orgUser.getUser().getUser_id())) {
+									users2add.remove(i);
+									break;
+								}
+							}
+						} else {
+							Application.getBean(OrganisationUserDao.class).delete(orgUser, WebSession.getUserId());
+						}
 						target.add(GroupUsersPanel.this);
 					}
-				})); 
-				item.add(AttributeModifier.append("class", ((item.getIndex() % 2 == 1) ? "even" : "odd")));
+				}));
 			}
 		};
 		add(dataView).setOutputMarkupId(true);
 		add(new PagedEntityListPanel("navigator", dataView) {
-			private static final long serialVersionUID = 5097048616003411362L;
+			private static final long serialVersionUID = 1L;
 
 			@Override
 			protected void onEvent(AjaxRequestTarget target) {
@@ -109,5 +113,36 @@ public class GroupUsersPanel extends Pan
 	
 	void update(long orgId) {
 		organisationId = orgId;
+		users2add.clear();
+	}
+	
+	List<Organisation_Users> getUsers2add() {
+		return users2add;
+	}
+	
+	private class OrgUserDataProvider extends SearchableDataProvider<Organisation_Users> {
+		private static final long serialVersionUID = 1L;
+
+		OrgUserDataProvider() {
+			super(OrganisationUserDao.class);
+		}
+		
+		protected OrganisationUserDao getDao() {
+			return (OrganisationUserDao)super.getDao();
+		}
+		
+		public long size() {
+			return users2add.size() + (search == null ? getDao().count(organisationId) : getDao().count(organisationId, search));
+		}
+		
+		public java.util.Iterator<? extends Organisation_Users> iterator(long first, long count) {
+			List<Organisation_Users> list = new ArrayList<Organisation_Users>();
+			list.addAll(users2add);
+			list.addAll(search == null && getSort() == null
+					? getDao().get(organisationId, (int)first, (int)count)
+					: getDao().get(organisationId, search, (int)first, (int)count, getSortStr()));
+			
+			return list.iterator();
+		}
 	}
 }

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.html?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.html (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.html Sat Jun  7 07:45:55 2014
@@ -53,24 +53,21 @@
 				<form wicket:id="form" class="adminForm">
 					<div wicket:id="buttons"></div>
 					<div class="scrollcontent" id="adminForm">
-					    <fieldset class="ui-widget-content">
-					        <legend class="ui-widget-header"><wicket:ommessage key="170" /></legend>
-                               <div class="formelement">
-                                   <label><wicket:ommessage key="171" /></label><input type="text" wicket:id="name" />
-                               </div>
-                               <div class="formelement">
-                                   <label style="font-weight: bold;"><wicket:ommessage key="273" /></label>
-                                   <form><div wicket:id="addUsersBtn" class="formNewButton disabled" wicket:ommessage="title:178"><input/></div></form>
-                               </div>
-                               <div class="formelement">
-                                   <div wicket:id="users"></div>
-                               </div>
-					    </fieldset>
+						<fieldset class="ui-widget-content">
+							<legend class="ui-widget-header"><wicket:ommessage key="170" /></legend>
+							<div class="formelement">
+								<label><wicket:ommessage key="171" /></label><input type="text" wicket:id="name" />
+							</div>
+							<div class="formelement">
+								<label style="font-weight: bold;"><wicket:ommessage key="178" /></label><input type="hidden" wicket:id="user2add" class="input"/>
+							</div>
+							<div class="formelement">
+								<div wicket:id="users"></div>
+							</div>
+						</fieldset>
 					</div>
 				</form>
 			</div>
 		</div>
-		<div wicket:id="addUsers">
-		</div>
 	</wicket:panel>
 </html>

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java Sat Jun  7 07:45:55 2014
@@ -21,10 +21,8 @@ package org.apache.openmeetings.web.admi
 import org.apache.openmeetings.db.dao.user.OrganisationDao;
 import org.apache.openmeetings.db.entity.user.Organisation;
 import org.apache.openmeetings.db.entity.user.Organisation_Users;
-import org.apache.openmeetings.web.admin.AddUsersDialog;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
-import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -32,22 +30,19 @@ import org.apache.openmeetings.web.data.
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.repeater.Item;
 
 /**
  * Modify/ CRUD operations for {@link Organisation} and
  * {@link Organisation_Users}
  * 
- * @author swag
+ * @author swagner
  * 
  */
 public class GroupsPanel extends AdminPanel {
-	private static final long serialVersionUID = -5170400556006464830L;
-	private AddUsersDialog addUsersDialog;
+	private static final long serialVersionUID = 1L;
 	private GroupForm form;
 	
 	@Override
@@ -60,46 +55,14 @@ public class GroupsPanel extends AdminPa
 	public GroupsPanel(String id) {
 		super(id);
 		final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
-        final AjaxButton addUsersBtn = new AjaxButton("addUsersBtn") {
-			private static final long serialVersionUID = 1L;
-        	@Override
-        	protected void onSubmit(AjaxRequestTarget target, Form<?> form1) {
-        		if (form.getModelObject().getOrganisation_id() != null) {
-        			addUsersDialog.open(target);
-        		}
-        	}
-        };
         
 		//Adding the Group Form
-		form = new GroupForm("form", listContainer, new Organisation()){
-			private static final long serialVersionUID = 1L;
-
-			private AjaxButton processAddClass() {
-				boolean orgSaved = getModelObject().getOrganisation_id() != null;
-				addUsersBtn.add(AttributeModifier.replace("class", orgSaved ? "formNewButton" : "formNewButton disabled"));
-				addUsersBtn.setEnabled(orgSaved);
-				return addUsersBtn;
-			}
-			
-			@Override
-			protected void onModelChanged() {
-				super.onModelChanged();
-				processAddClass();
-			}
-			
-			@Override
-			public void updateView(AjaxRequestTarget target) {
-				super.updateView(target);
-				target.add(processAddClass());
-			}
-		};
-        add(form.add(addUsersBtn.setOutputMarkupId(true)));
-        addUsersDialog = new AddUsersDialog("addUsers",WebSession.getString(180), form, true);
-		add(addUsersDialog.setOutputMarkupId(true));
+		form = new GroupForm("form", listContainer, new Organisation());
+        add(form);
 
         //List view
         SearchableDataView<Organisation> dataView = new SearchableDataView<Organisation>("groupList", new SearchableDataProvider<Organisation>(OrganisationDao.class)) {
-			private static final long serialVersionUID = 8715559628755439596L;
+			private static final long serialVersionUID = 1L;
 
 			@Override
 			protected void populateItem(Item<Organisation> item) {
@@ -118,7 +81,7 @@ public class GroupsPanel extends AdminPa
 					}
 				});
 				item.add(AttributeModifier.append("class", "clickable ui-widget-content"
-						+ (o.getOrganisation_id().equals(form.getModelObject().getOrganisation_id()) ? " selected" : "")));
+						+ (o.getOrganisation_id().equals(form.getModelObject().getOrganisation_id()) ? " ui-state-active" : "")));
 			}
 		};
 

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/labels/LangPanel.java Sat Jun  7 07:45:55 2014
@@ -144,7 +144,7 @@ public class LangPanel extends AdminPane
 					}
 				});
 				item.add(AttributeModifier.append("class", "clickable ui-widget-content"
-						+ (fv.getFieldvalues_id().equals(form.getModelObject().getFieldvalues_id()) ? " selected" : "")));
+						+ (fv.getFieldvalues_id().equals(form.getModelObject().getFieldvalues_id()) ? " ui-state-active" : "")));
 			}
 		};
 

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java Sat Jun  7 07:45:55 2014
@@ -74,7 +74,7 @@ public class LdapsPanel extends AdminPan
 					}
 				});
 				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"
-						+ (lc.getLdapConfigId() == form.getModelObject().getLdapConfigId() ? " selected" : "")));
+						+ (lc.getLdapConfigId() == form.getModelObject().getLdapConfigId() ? " ui-state-active" : "")));
 			}
 		};
 		add(listContainer.add(dataView).setOutputMarkupId(true));

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java Sat Jun  7 07:45:55 2014
@@ -64,7 +64,7 @@ public class OAuthPanel extends AdminPan
 					}
 				});
 				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"
-						+ (server.getId().equals(form.getModelObject().getId()) ? " selected" : "")));
+						+ (server.getId().equals(form.getModelObject().getId()) ? " ui-state-active" : "")));
 			}
 			
 		};

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java Sat Jun  7 07:45:55 2014
@@ -24,32 +24,34 @@ 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.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.room.RoomModeratorsDao;
 import org.apache.openmeetings.db.dao.room.RoomTypeDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.user.IUserService;
 import org.apache.openmeetings.db.dao.user.OrganisationDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.RoomModerator;
 import org.apache.openmeetings.db.entity.room.RoomOrganisation;
 import org.apache.openmeetings.db.entity.room.RoomType;
+import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.Organisation;
 import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.web.admin.AdminCommonUserForm;
+import org.apache.openmeetings.web.admin.AdminBaseForm;
+import org.apache.openmeetings.web.admin.AdminUserChoiceProvider;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.ConfirmCallListener;
-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.ajax.form.AjaxFormValidatingBehavior;
+import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
 import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
+import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.CheckBox;
@@ -64,21 +66,25 @@ import org.apache.wicket.markup.html.for
 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.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.util.time.Duration;
 
-public class RoomForm extends AdminCommonUserForm<Room> {
+import com.vaynberg.wicket.select2.Response;
+import com.vaynberg.wicket.select2.Select2Choice;
+
+public class RoomForm extends AdminBaseForm<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> pin;
-	final WebMarkupContainer moderatorContainer;
-	final WebMarkupContainer clientsContainer;
-	final ListView<RoomModerator> moderators;
-	final ListView<Client> clients;
-	List<RoomModerator> moderatorsInRoom = null;
-	List<Client> clientsInRoom = null;
+	private final WebMarkupContainer moderatorContainer = new WebMarkupContainer("moderatorContainer");
+	private final WebMarkupContainer clientsContainer = new WebMarkupContainer("clientsContainer");
+	private final ListView<Client> clients;
+	private List<Client> clientsInRoom = null;
+	private IModel<User> moderator2add = Model.of((User)null);
 	
 	public RoomForm(String id, WebMarkupContainer roomList, final Room room) {
 		super(id, new CompoundPropertyModel<Room>(room));
@@ -146,8 +152,7 @@ public class RoomForm extends AdminCommo
 		add(new CheckBox("autoVideoSelect"));	
 		
 		// Users in this Room 
-		clientsContainer = new WebMarkupContainer("clientsContainer");
-		clients = new ListView<Client>("clients", clientsInRoom){
+		clients = new ListView<Client>("clients", clientsInRoom) {
 			private static final long serialVersionUID = 8542589945574690054L;
 
 			@Override
@@ -156,67 +161,103 @@ public class RoomForm extends AdminCommo
 				item.add(new Label("clientId", "" + client.getId()))
 					.add(new Label("clientLogin", "" + client.getUsername()))
 					.add(new WebMarkupContainer("clientDelete").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) {
-						Client c = item.getModelObject();
-						getBean(IUserService.class).kickUserByStreamId(getSid(), c.getStreamid()
-								, c.getServer() == null ? 0 : c.getServer().getId());
+						private static final long serialVersionUID = 1L;
+	
+						@Override
+						protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+							super.updateAjaxAttributes(attributes);
+							attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
+						}
 						
-						updatClients(target);
-					}
-				}));
+						@Override
+						protected void onEvent(AjaxRequestTarget target) {
+							Client c = item.getModelObject();
+							getBean(IUserService.class).kickUserByStreamId(getSid(), c.getStreamid()
+									, c.getServer() == null ? 0 : c.getServer().getId());
+							
+							updateClients(target);
+						}
+					}));
 			}
 		};
 		add(clientsContainer.add(clients.setOutputMarkupId(true)).setOutputMarkupId(true));
 		
 		// Moderators
-		moderators =	new ListView<RoomModerator>("moderators", moderatorsInRoom) {
-			private static final long serialVersionUID = -7935197812421549677L;
+		final Select2Choice<User> moderatorChoice = new Select2Choice<User>("moderator2add", moderator2add, new AdminUserChoiceProvider() {
+			private static final long serialVersionUID = 1L;
 
 			@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;
+			public void query(String term, int page, Response<User> response) {
+				response.addAll(getBean(UserDao.class).get(term, false, page * PAGE_SIZE, PAGE_SIZE));
+				response.setHasMore(PAGE_SIZE == response.getResults().size());
+			}
+
+			@Override
+			protected String getDisplayText(User choice) {
+				Address a = choice.getAdresses();
+				return String.format("\"%s %s\" <%s>", choice.getFirstname(), choice.getLastname(), a == null ? "" : a.getEmail());
+			}
+		});
+		add(moderatorChoice.add(new OnChangeAjaxBehavior() {
+			private static final long serialVersionUID = 1L;
 
-					@Override
-					protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
-						super.updateAjaxAttributes(attributes);
-						attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
+			@Override
+			protected void onUpdate(AjaxRequestTarget target) {
+				Room r = RoomForm.this.getModelObject();
+				User u = moderator2add.getObject();
+				boolean found = false;
+				if (u != null) {
+					for (RoomModerator rm : r.getModerators()) {
+						if (rm.getUser().getUser_id().equals(u.getUser_id())) {
+							found = true;
+							break;
+						}
 					}
-					
-					@Override
-					protected void onEvent(AjaxRequestTarget target) {
-						Application.getBean(RoomModeratorsDao.class).removeRoomModeratorByUserId(moderator.getRoomModeratorsId());
-						updateModerators(target);
+					if (!found) {
+						RoomModerator rm = new RoomModerator();
+						rm.setRoomId(r.getRooms_id());
+						rm.setUser(u);
+						r.getModerators().add(0, rm);
+						moderator2add.setObject(null);
+						target.add(moderatorContainer, moderatorChoice);
 					}
-				})); 
+				}
+			}
+		}).setOutputMarkupId(true));
+		add(moderatorContainer.add(new ListView<RoomModerator>("moderators") {
+			private static final long serialVersionUID = 1L;
 
-				item.add(AttributeModifier.replace("class", (item.getIndex() % 2 == 1) ? "even" : "odd"));
+			@Override
+			protected void populateItem(final ListItem<RoomModerator> item) {
+				RoomModerator moderator = item.getModelObject();
+				Label name = new Label("uName", moderator.getUser().getFirstname() + " " + moderator.getUser().getLastname());
+				if (moderator.getRoomModeratorsId() == 0) {
+					name.add(AttributeAppender.append("class", "newItem"));
+				}
+				item.add(new CheckBox("isSuperModerator", new PropertyModel<Boolean>(moderator, "isSuperModerator")))
+					.add(new Label("userId", "" + moderator.getUser().getUser_id()))
+					.add(name)
+					.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) {
+							RoomForm.this.getModelObject().getModerators().remove(item.getIndex());
+							target.add(moderatorContainer);
+						}
+					}));
 			}
-		};
+		}).setOutputMarkupId(true));
 
-		// 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));
-		
 		add(new TextField<String>("confno").setEnabled(false));
 		add(pin = new TextField<String>("pin"));
 		pin.setEnabled(room.isSipEnabled());
@@ -235,15 +276,7 @@ public class RoomForm extends AdminCommo
 		AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown", Duration.ONE_SECOND);
 	}
 
-	void updateModerators(AjaxRequestTarget target) {
-		long roomId = (getModelObject().getRooms_id() != null ? getModelObject().getRooms_id() : 0);  
-		RoomModeratorsDao moderatorsDao = getBean(RoomModeratorsDao.class);
-		final List<RoomModerator> moderatorsInRoom = moderatorsDao.getRoomModeratorByRoomId(roomId);
-		moderators.setDefaultModelObject(moderatorsInRoom);
-		target.add(moderatorContainer);
-	}
-	
-	void updatClients(AjaxRequestTarget target) {
+	void updateClients(AjaxRequestTarget target) {
 		long roomId = (getModelObject().getRooms_id() != null ? getModelObject().getRooms_id() : 0);  
 		final List<Client> clientsInRoom = Application.getBean(ISessionManager.class).getClientListByRoom(roomId);
 		clients.setDefaultModelObject(clientsInRoom);
@@ -252,7 +285,16 @@ public class RoomForm extends AdminCommo
 	
 	@Override
 	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
-		getBean(RoomDao.class).update(getModelObject(), getUserId());
+		Room r = getModelObject();
+		boolean newRoom = r.getRooms_id() == null;
+		r = getBean(RoomDao.class).update(r, getUserId());
+		if (newRoom) {
+			for (RoomModerator rm : r.getModerators()) {
+				rm.setRoomId(r.getRooms_id());
+			}
+			// FIXME double update
+			getBean(RoomDao.class).update(getModelObject(), getUserId());
+		}
 		hideNewRecord();
 		updateView(target);
 	}
@@ -294,6 +336,7 @@ public class RoomForm extends AdminCommo
 	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
 		getBean(RoomDao.class).delete(getModelObject(), getUserId());
 		target.add(roomList);
+		setModelObject(new Room());
 		updateView(target);
 	}
 
@@ -302,42 +345,11 @@ public class RoomForm extends AdminCommo
 		// TODO Auto-generated method stub
 	}
 
-	@Override
 	public void updateView(AjaxRequestTarget target) {
 		target.add(this);
 		target.add(roomList);
 		target.add(pin.setEnabled(getModelObject().isSipEnabled()));
-		updateModerators(target);
-		updatClients(target);
+		updateClients(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);
-		moderatorsInRoom = (moderatorsInRoom == null) ? new ArrayList<RoomModerator>() : moderatorsInRoom;
-		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);
-				moderatorsInRoom.add(rModerator);
-				moderatorsDao.addRoomModeratorByUserId(u, false, roomId);
-			}
-		}
-		updateModerators(target);
-	}
 }

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html Sat Jun  7 07:45:55 2014
@@ -86,9 +86,6 @@
 				            </div>
 				            <div class="formelement">
 				                <div class="info-text"><wicket:ommessage key="828" /></div>
-                                <br/>
-                                <div class="info-text"><wicket:ommessage key="191" /></div>
-                                <br/>
 				                <label><wicket:ommessage key="191" /></label><select wicket:id="roomOrganisations" style="height: 80px"/>
 				            </div>
 				        </fieldset>
@@ -206,36 +203,36 @@
 						<fieldset class="ui-widget-content">
                             <div class="formelement">
 				            	<div class="info-text"><wicket:ommessage key="823" /></div>
-                                <br/>
 				                <label><wicket:ommessage key="640" /></label><input type="checkbox" class="formcheckbox" wicket:id="isModeratedRoom" />
-                                <form><div wicket:id="addModerator" class="formNewButton disabled" wicket:ommessage="title:821"><input/></div></form>
 				            </div>
 	                        <div class="formelement">
-					            <wicket:ommessage key="816" />
+					            <label><wicket:ommessage key="816" /></label><input type="hidden" wicket:id="moderator2add" class="input"/>
 				            </div>
-							<table class="adminListTableSmall">
-								<thead>
-									<tr>
-										<th class="three_column_layout_column1 ui-widget-header"><wicket:ommessage key="817" /></th>
-										<th class="three_column_layout_column2 ui-widget-header"><wicket:ommessage key="818" /></th>
-										<th class="three_column_layout_column3 ui-widget-header"><wicket:ommessage key="819" /></th>
-										<th class="three_column_layout_column4 ui-widget-header"><wicket:ommessage key="820" /></th>
-										<th class="three_column_layout_column5 ui-widget-header"><wicket:ommessage key="827" /></th>
-									</tr>	
-								</thead>
-							</table>
-							<div class="tableWrapperSmall" id="adminTableSmall">
+				            <div wicket:id="moderatorContainer">
 								<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>
+									<thead>
+										<tr>
+											<th class="three_column_layout_column1 ui-widget-header" style="overflow: hidden;" wicket:ommessage="title:817"><wicket:ommessage key="817" /></th>
+											<th class="three_column_layout_column2 ui-widget-header"><wicket:ommessage key="818" /></th>
+											<th class="three_column_layout_column3 ui-widget-header"><wicket:ommessage key="819" /></th>
+											<th class="three_column_layout_column4 ui-widget-header"><wicket:ommessage key="820" /></th>
+											<th class="three_column_layout_column5 ui-widget-header"><wicket:ommessage key="827" /></th>
+										</tr>	
+									</thead>
 								</table>
+								<div class="tableWrapperSmall" id="adminTableSmall">
+									<table class="adminListTableSmall">
+										<tbody>		
+								    		<tr wicket:id="moderators">
+												<td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><input type="checkbox" wicket:id="isSuperModerator"/></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" style="overflow: hidden;"><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>
 							</div>
 						</fieldset>
 					    <!--SIP Settings -->
@@ -262,6 +259,5 @@
 				</form>
 			</div>
 		</div>
-		<div wicket:id="addModerators"></div>
 	</wicket:panel>
 </html>

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java Sat Jun  7 07:45:55 2014
@@ -18,12 +18,12 @@
  */
 package org.apache.openmeetings.web.admin.rooms;
 
+import static org.apache.openmeetings.web.app.Application.getBean;
+
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.web.admin.AddUsersDialog;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
-import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
@@ -31,15 +31,12 @@ import org.apache.openmeetings.web.data.
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.repeater.Item;
 
 public class RoomsPanel extends AdminPanel {
 	private static final long serialVersionUID = -1L;
-	private final AddUsersDialog addModeratorsDialog;
 	final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
 	private RoomForm form;
 	
@@ -57,7 +54,8 @@ public class RoomsPanel extends AdminPan
 
 			@Override
 			protected void populateItem(final Item<Room> item) {
-				final Room room = item.getModelObject();
+				Room room = item.getModelObject();
+				final long roomId = room.getRooms_id();
 				item.add(new Label("rooms_id", "" + room.getRooms_id()));
 				item.add(new Label("name", "" + room.getName()));
 				item.add(new Label("ispublic", "" + room.getIspublic()));
@@ -66,14 +64,14 @@ public class RoomsPanel extends AdminPan
 
 					protected void onEvent(AjaxRequestTarget target) {
 						form.hideNewRecord();
-						form.setModelObject(room);
+						form.setModelObject(getBean(RoomDao.class).get(roomId));
 						form.updateView(target);
 						target.add(form, listContainer);
 						target.appendJavaScript("omRoomPanelInit();");
 					}
 				});
 				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"
-						+ (room.getRooms_id().equals(form.getModelObject().getRooms_id()) ? " selected" : "")));
+						+ (room.getRooms_id().equals(form.getModelObject().getRooms_id()) ? " ui-state-active" : "")));
 			}
 		};
 		
@@ -93,29 +91,6 @@ public class RoomsPanel extends AdminPan
 		add(container.orderLinks);
 		add(navigator);
 
-		final AjaxButton addModerator = new AjaxButton("addModerator") {
-			private static final long serialVersionUID = 1L;
-			
-			@Override
-			protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
-        		addModeratorsDialog.open(target);
-			}
-		};
-		
-		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);
-				addModerator.add(AttributeModifier.replace("class", roomEmpty ? "formNewButton disabled" : "formNewButton"));
-				addModerator.setEnabled(!roomEmpty);
-			}
-			
-		};
-		
-        add(form.add(addModerator.setOutputMarkupId(true)));
-        add(addModeratorsDialog = new AddUsersDialog("addModerators", WebSession.getString(821), form, true));
+        add(form = new RoomForm("form", listContainer, new Room()));
 	}
 }

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java Sat Jun  7 07:45:55 2014
@@ -74,7 +74,7 @@ public class ServersPanel extends AdminP
 					}
 				});
 				item.add(AttributeModifier.replace("class", "clickable ui-widget-content"
-						+ (server.getId().equals(form.getModelObject().getId()) ? " selected" : "")));
+						+ (server.getId().equals(form.getModelObject().getId()) ? " ui-state-active" : "")));
 			}
 		};
 		

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UserForm.java Sat Jun  7 07:45:55 2014
@@ -28,7 +28,7 @@ import static org.apache.wicket.validati
 import java.util.Arrays;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
+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.openmeetings.web.admin.AdminBaseForm;
@@ -82,7 +82,7 @@ public class UserForm extends AdminBaseF
 	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
 		User u = getModelObject();
 		try {
-			u = getBean(AdminUserDao.class).update(u, generalForm.getPasswordField().getConvertedInput(), getUserId());
+			u = getBean(UserDao.class).update(u, generalForm.getPasswordField().getConvertedInput(), getUserId());
 		} catch (Exception e) {
 			// FIXME update feedback with the error details
 		}
@@ -98,7 +98,7 @@ public class UserForm extends AdminBaseF
 
 	@Override
 	protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {
-		AdminUserDao usersDaoImpl = getBean(AdminUserDao.class);
+		UserDao usersDaoImpl = getBean(UserDao.class);
 		setModelObject(usersDaoImpl.getNewUserInstance(usersDaoImpl.get(getUserId())));
 		target.add(this);
 		target.appendJavaScript("omUserPanelInit();");
@@ -108,7 +108,7 @@ public class UserForm extends AdminBaseF
 	protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
 		User user = getModelObject();
 		if (user.getUser_id() != null) {
-			user = getBean(AdminUserDao.class).get(user.getUser_id());
+			user = getBean(UserDao.class).get(user.getUser_id());
 		} else {
 			user = new User();
 		}
@@ -119,7 +119,7 @@ public class UserForm extends AdminBaseF
 
 	@Override
 	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
-		AdminUserDao usersDaoImpl = getBean(AdminUserDao.class);
+		UserDao usersDaoImpl = getBean(UserDao.class);
 		usersDaoImpl.delete(this.getModelObject(), getUserId());
 		this.setModelObject(usersDaoImpl.getNewUserInstance(usersDaoImpl.get(getUserId())));
 		target.add(listContainer);
@@ -199,7 +199,7 @@ public class UserForm extends AdminBaseF
 
 	@Override
 	protected void onValidate() {
-		if(!getBean(AdminUserDao.class).checkUserLogin(login.getConvertedInput(), getModelObject().getUser_id())) {
+		if(!getBean(UserDao.class).checkUserLogin(login.getConvertedInput(), getModelObject().getUser_id())) {
 			error(WebSession.getString(105));
 		}
 	}

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/admin/users/UsersPanel.java Sat Jun  7 07:45:55 2014
@@ -21,7 +21,7 @@ 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 org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.admin.AdminPanel;
 import org.apache.openmeetings.web.admin.SearchableDataView;
@@ -64,13 +64,13 @@ public class UsersPanel extends AdminPan
 	public UsersPanel(String id) {
 		super(id);
 
-		final SearchableDataView<User> dataView = new SearchableDataView<User>("userList"
-				, new SearchableDataProvider<User>(AdminUserDao.class)) {
+		final SearchableDataView<User> dataView = new SearchableDataView<User>("userList", new SearchableDataProvider<User>(UserDao.class)) {
 			private static final long serialVersionUID = 8715559628755439596L;
 
 			@Override
 			protected void populateItem(Item<User> item) {
-				final User u = item.getModelObject();
+				User u = item.getModelObject();
+				final long userId = u.getUser_id();
 				item.add(new Label("userId", "" + u.getUser_id()));
 				item.add(new Label("login", u.getLogin()));
 				item.add(new Label("firstName", u.getFirstname()));
@@ -79,7 +79,7 @@ public class UsersPanel extends AdminPan
 					private static final long serialVersionUID = -8069413566800571061L;
 
 					protected void onEvent(AjaxRequestTarget target) {
-						form.setModelObject(u);
+						form.setModelObject(getBean(UserDao.class).get(userId));
 						form.hideNewRecord();
 						target.add(form, listContainer);
 						//re-initialize height
@@ -87,7 +87,7 @@ public class UsersPanel extends AdminPan
 					}
 				});
 				item.add(AttributeModifier.append("class", "clickable ui-widget-content"
-						+ (u.getUser_id().equals(form.getModelObject().getUser_id()) ? " selected" : "")));
+						+ (u.getUser_id().equals(form.getModelObject().getUser_id()) ? " ui-state-active" : "")));
 			}
 		};
 		add(listContainer.add(dataView).setOutputMarkupId(true));
@@ -107,7 +107,7 @@ public class UsersPanel extends AdminPan
 		add(container.orderLinks);
 		add(navigator);
 
-		AdminUserDao usersDaoImpl = getBean(AdminUserDao.class);
+		UserDao usersDaoImpl = getBean(UserDao.class);
 		form = new UserForm("form", listContainer, usersDaoImpl.getNewUserInstance(usersDaoImpl.get(getUserId())), warning);
 		form.showNewRecord();
 		add(form, warning);

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/Application.java Sat Jun  7 07:45:55 2014
@@ -30,7 +30,7 @@ import java.util.concurrent.ConcurrentHa
 import javax.servlet.ServletContext;
 
 import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.util.InitializationContainer;
 import org.apache.openmeetings.web.pages.ActivatePage;
 import org.apache.openmeetings.web.pages.MainPage;
@@ -224,7 +224,7 @@ public class Application extends Authent
 		if (!isInstalled) {
 			if (InitializationContainer.initComplete) {
 				//TODO can also check crypt class here
-				isInstalled = result = get()._getBean(AdminUserDao.class).count() > 0
+				isInstalled = result = get()._getBean(UserDao.class).count() > 0
 						&& get()._getBean(FieldLanguagesValuesDao.class).count() > 0;
 			}
 		}

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java Sat Jun  7 07:45:55 2014
@@ -44,7 +44,6 @@ import org.apache.openmeetings.db.dao.la
 import org.apache.openmeetings.db.dao.label.FieldLanguagesValuesDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
 import org.apache.openmeetings.db.dao.user.ILdapLoginManagement;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.StateDao;
@@ -191,7 +190,7 @@ public class WebSession extends Abstract
 			if (sd != null && sd.getSessionXml() != null) {
 				RemoteSessionObject remoteUser = RemoteSessionObject.fromXml(sd.getSessionXml());
 				if (remoteUser != null && !Strings.isEmpty(remoteUser.getExternalUserId())) {
-					AdminUserDao userDao = getBean(AdminUserDao.class);
+					UserDao userDao = getBean(UserDao.class);
 					User user = userDao.getExternalUser(remoteUser.getExternalUserId(), remoteUser.getExternalUserType());
 					if (user == null) {
 						user = userDao.getNewUserInstance(null);

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/common/GeneralUserForm.java Sat Jun  7 07:45:55 2014
@@ -29,10 +29,10 @@ import java.util.List;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
 import org.apache.openmeetings.db.dao.user.OrganisationDao;
 import org.apache.openmeetings.db.dao.user.SalutationDao;
 import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.label.FieldLanguage;
 import org.apache.openmeetings.db.entity.user.Organisation;
 import org.apache.openmeetings.db.entity.user.Organisation_Users;
@@ -153,7 +153,7 @@ public class GeneralUserForm extends For
 
 	@Override
 	protected void onValidate() {
-		if(!getBean(AdminUserDao.class).checkUserEMail(email.getConvertedInput(), getModelObject().getUser_id())) {
+		if(!getBean(UserDao.class).checkUserEMail(email.getConvertedInput(), getModelObject().getUser_id())) {
 			error(WebSession.getString(1000));
 		}
 		super.onValidate();

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/ResetPage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/ResetPage.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/ResetPage.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/ResetPage.java Sat Jun  7 07:45:55 2014
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.web.pages;
 
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.pages.auth.ResetPasswordDialog;
@@ -31,7 +31,7 @@ public class ResetPage extends BaseNotIn
 	public ResetPage(PageParameters pp){
 		String resetHash = pp.get(RESET_PARAM).toString();
 		if (resetHash != null){
-			Object user = Application.getBean(AdminUserDao.class).getUserByHash(resetHash);
+			Object user = Application.getBean(UserDao.class).getUserByHash(resetHash);
 			if (user instanceof User){
 				add(new ResetPasswordDialog("resetPassword", (User)user));
 			}else {

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java Sat Jun  7 07:45:55 2014
@@ -26,7 +26,7 @@ import java.util.Date;
 import java.util.List;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.mail.MailHandler;
 import org.apache.openmeetings.util.crypt.ManageCryptStyle;
@@ -119,13 +119,13 @@ public class ForgetPasswordDialog extend
 			
 			@Override
 			protected void onValidate() {
-				AdminUserDao dao = getBean(AdminUserDao.class);
+				UserDao dao = getBean(UserDao.class);
 				String n = nameField.getConvertedInput();
 				if (n != null) {
 					if (type == Type.email && null == dao.getUserByEmail(n)) {
 						error(WebSession.getString(318));
 					}
-					if (type == Type.login && null == dao.getUserByName(n)) {
+					if (type == Type.login && null == dao.getUserByName(n, User.Type.user)) {
 						error(WebSession.getString(320));
 					}
 				}
@@ -202,7 +202,7 @@ public class ForgetPasswordDialog extend
 	 */
 	private Long resetUser(String email, String username, String appLink) {
 		try {
-			AdminUserDao userDao = getBean(AdminUserDao.class);
+			UserDao userDao = getBean(UserDao.class);
 			log.debug("resetUser " + email);
 
 			// check if Mail given
@@ -216,7 +216,7 @@ public class ForgetPasswordDialog extend
 					return new Long(-9);
 				}
 			} else if (username.length() > 0) {
-				User us = userDao.getUserByName(username);
+				User us = userDao.getUserByName(username, User.Type.user);
 				if (us != null) {
 					sendHashByUser(us, appLink, userDao);
 					return new Long(-4);
@@ -231,7 +231,7 @@ public class ForgetPasswordDialog extend
 		return new Long(-2);
 	}
 
-	private void sendHashByUser(User us, String appLink, AdminUserDao userDao) throws Exception {
+	private void sendHashByUser(User us, String appLink, UserDao userDao) throws Exception {
 		String loginData = us.getLogin() + new Date();
 		log.debug("User: " + us.getLogin());
 		us.setResethash(ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(loginData));

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java Sat Jun  7 07:45:55 2014
@@ -32,9 +32,9 @@ import java.util.TimeZone;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.FieldLanguageDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.label.FieldLanguage;
 import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.util.CalendarPatterns;
@@ -275,10 +275,10 @@ public class RegisterDialog extends Abst
 					|| !passwordField.getConvertedInput().equals(confirmPassword.getConvertedInput())) {
 				error(WebSession.getString(232));
 			}
-			if (!getBean(AdminUserDao.class).checkUserEMail(emailField.getConvertedInput(), null)) {
+			if (!getBean(UserDao.class).checkUserEMail(emailField.getConvertedInput(), null)) {
 				error(WebSession.getString(1000));
 			}
-			if (!getBean(AdminUserDao.class).checkUserLogin(loginField.getConvertedInput(), null)) {
+			if (!getBean(UserDao.class).checkUserLogin(loginField.getConvertedInput(), null)) {
 				error(WebSession.getString(105));
 			}
 		}

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java Sat Jun  7 07:45:55 2014
@@ -26,7 +26,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
@@ -156,7 +156,7 @@ public class ResetPasswordDialog extends
 	@Override
 	protected void onSubmit(AjaxRequestTarget target) {
 		try {
-			getBean(AdminUserDao.class).update(user, password.getConvertedInput(), user.getUser_id());
+			getBean(UserDao.class).update(user, password.getConvertedInput(), user.getUser_id());
 		} catch (Exception e) {
 			error(e.getMessage());
 		}

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java Sat Jun  7 07:45:55 2014
@@ -63,6 +63,7 @@ import org.apache.wicket.model.AbstractR
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.string.Strings;
 
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
 import com.googlecode.wicket.jquery.core.Options;

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/SignInPage.java Sat Jun  7 07:45:55 2014
@@ -48,10 +48,11 @@ import javax.net.ssl.X509TrustManager;
 import org.apache.commons.io.IOUtils;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.server.OAuthServer;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.pages.BaseInitedPage;
@@ -67,6 +68,7 @@ import org.apache.wicket.request.Url;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.flow.RedirectToUrlException;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.string.StringValue;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
@@ -85,38 +87,37 @@ public class SignInPage extends BaseInit
 	
 	public SignInPage(PageParameters p) {
 		super();
-		if (p != null) {
-			if (p.get("oauthid").toString() != null) { // oauth2 login
-				try {
-					long serverId = Long.valueOf(p.get("oauthid").toString());
-					OAuthServer server = getBean(OAuth2Dao.class).get(serverId);
-					log.debug("OAuthServer=" + server);
-					if (server == null) {
-						log.warn("OAuth server id=" + serverId + " not found");
-						return;
-					}
-					
-					if (p.get("code").toString() != null) { // got code
-						String code = p.get("code").toString();
-						log.debug("OAuth response code=" + code);
-					 	AuthInfo authInfo = getToken(code, server);
-					 	if (authInfo == null) return;
-					 	log.debug("OAuthInfo=" + authInfo);
-					 	Map<String, String> authParams = getAuthParams(authInfo.accessToken, code, server);
-					 	if (authParams != null) {
-					 		loginViaOAuth2(authParams, serverId);
-					 	}
-					} else { // redirect to get code
-						String redirectUrl = prepareUrlParams(server.getRequestKeyUrl(), server.getClientId(), 
-								null, null, getRedirectUri(server, this), null);
-						log.debug("redirectUrl=" + redirectUrl);
-						throw new RedirectToUrlException(redirectUrl);
-					}
-				} catch (IOException e) {
-					log.error("OAuth2 login error", e);
-				} catch (NoSuchAlgorithmException e) {
-					log.error("OAuth2 login error", e);
+		StringValue oauthid = p.get("oauthid");
+		if (!oauthid.isEmpty()) { // oauth2 login
+			try {
+				long serverId = oauthid.toLong(-1);
+				OAuthServer server = getBean(OAuth2Dao.class).get(serverId);
+				log.debug("OAuthServer=" + server);
+				if (server == null) {
+					log.warn("OAuth server id=" + serverId + " not found");
+					return;
+				}
+				
+				if (p.get("code").toString() != null) { // got code
+					String code = p.get("code").toString();
+					log.debug("OAuth response code=" + code);
+				 	AuthInfo authInfo = getToken(code, server);
+				 	if (authInfo == null) return;
+				 	log.debug("OAuthInfo=" + authInfo);
+				 	Map<String, String> authParams = getAuthParams(authInfo.accessToken, code, server);
+				 	if (authParams != null) {
+				 		loginViaOAuth2(authParams, serverId);
+				 	}
+				} else { // redirect to get code
+					String redirectUrl = prepareUrlParams(server.getRequestKeyUrl(), server.getClientId(), 
+							null, null, getRedirectUri(server, this), null);
+					log.debug("redirectUrl=" + redirectUrl);
+					throw new RedirectToUrlException(redirectUrl);
 				}
+			} catch (IOException e) {
+				log.error("OAuth2 login error", e);
+			} catch (NoSuchAlgorithmException e) {
+				log.error("OAuth2 login error", e);
 			}
 		}
 		
@@ -131,7 +132,7 @@ public class SignInPage extends BaseInit
 	}
 	
 	public SignInPage() {
-		this(null);
+		this(new PageParameters());
 	}
 	
 	@Override
@@ -316,7 +317,7 @@ public class SignInPage extends BaseInit
 	}
 	
 	private void loginViaOAuth2(Map<String, String> params, long serverId) throws IOException, NoSuchAlgorithmException {
-		AdminUserDao userDao = getBean(AdminUserDao.class);
+		UserDao userDao = getBean(UserDao.class);
 		IUserManager userManager = getBean(IUserManager.class); 
 		ConfigurationDao configurationDao = getBean(ConfigurationDao.class);
 		String login = params.get("login");
@@ -325,7 +326,7 @@ public class SignInPage extends BaseInit
 		String firstname = params.get("firstname");
 		if (firstname == null) firstname = "";
 		if (lastname == null) lastname = "";
-		User user = userDao.getUserByName(login);
+		User user = userDao.getUserByName(login, Type.oauth);
 		// generate random password
 		byte[] rawPass = new byte[16];
 		Random rnd = new Random();
@@ -343,12 +344,13 @@ public class SignInPage extends BaseInit
 				throw new RuntimeException("Couldn't register new oauth user");
 			}
 			user = userDao.get(res);
+			user.setType(Type.oauth);
 			user.setExternalUserType("oauth2." + serverId);
 			userDao.update(user, null);
 		} else { // just change password
 			// check user type before changing password, it must be match oauthServerId
 			if (!("oauth2." + serverId).equals(user.getExternalUserType())) {
-				log.error("User already registered!");
+				log.error("User already registered! with different OAuth server");
 				return;
 			}
 			user = userDao.update(user, pass, -1);

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java Sat Jun  7 07:45:55 2014
@@ -406,7 +406,7 @@ public class MessagesContactsPanel exten
 					if (cssClass.length() > 0) {
 						cssClass.append(" ");
 					}
-					cssClass.append("selected");
+					cssClass.append("ui-state-active");
 				}
 				item.add(AttributeModifier.replace("class", cssClass.toString()));
 			}

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java Sat Jun  7 07:45:55 2014
@@ -279,7 +279,7 @@ public class RecordingsPanel extends Use
 				protected String getOtherStyleClass(FlvRecording r) {
 					String style = getRecordingStyle(r, super.getOtherStyleClass(r));
 					if (isSelected()) {
-						style += " selected";
+						style += " ui-state-active";
 					}
 					return style;
 				}

Modified: openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/UserChoiceProvider.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/UserChoiceProvider.java (original)
+++ openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/util/UserChoiceProvider.java Sat Jun  7 07:45:55 2014
@@ -92,7 +92,7 @@ public class UserChoiceProvider extends 
 			response.add(c);
 		}
 		UserDao dao = getBean(UserDao.class);
-		response.addAll(dao.get(term, page * PAGE_SIZE, PAGE_SIZE, null, getUserId()));
+		response.addAll(dao.get(term, page * PAGE_SIZE, PAGE_SIZE, null, true, getUserId()));
 
 		response.setHasMore(page < dao.count(term, getUserId()) / PAGE_SIZE);
 	}

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/calendar/management/AppointmentLogic.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/calendar/management/AppointmentLogic.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/calendar/management/AppointmentLogic.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/calendar/management/AppointmentLogic.java Sat Jun  7 07:45:55 2014
@@ -41,7 +41,7 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.room.InvitationDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.room.RoomTypeDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.apache.openmeetings.db.entity.room.Invitation;
@@ -79,7 +79,7 @@ public class AppointmentLogic {
 	@Autowired
 	private RoomManager roomManager;
 	@Autowired
-	private AdminUserDao userDao;
+	private UserDao userDao;
 	@Autowired
 	private MeetingMemberDao meetingMemberDao;
 	@Autowired

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=1601073&r1=1601072&r2=1601073&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 Sat Jun  7 07:45:55 2014
@@ -20,6 +20,7 @@ package org.apache.openmeetings.core.dat
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -35,16 +36,17 @@ import javax.persistence.criteria.Predic
 import javax.persistence.criteria.Root;
 
 import org.apache.openmeetings.core.data.basic.FieldManager;
-import org.apache.openmeetings.core.data.user.OrganisationManager;
 import org.apache.openmeetings.db.dao.room.IRoomManager;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.room.RoomModeratorsDao;
 import org.apache.openmeetings.db.dao.room.RoomTypeDao;
 import org.apache.openmeetings.db.dao.room.SipDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
+import org.apache.openmeetings.db.dao.user.OrganisationDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.basic.SearchResult;
 import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomModerator;
 import org.apache.openmeetings.db.entity.room.RoomOrganisation;
 import org.apache.openmeetings.db.entity.user.Organisation_Users;
 import org.apache.openmeetings.db.entity.user.User;
@@ -67,7 +69,7 @@ public class RoomManager implements IRoo
 	private EntityManager em;
 
 	@Autowired
-	private OrganisationManager organisationManager;
+	private OrganisationDao orgDao;
 	@Autowired
 	private RoomModeratorsDao roomModeratorsDao;
 	@Autowired
@@ -513,6 +515,25 @@ public class RoomManager implements IRoo
     	return r == null || r.getConfno() == null ? null : sipDao.countUsers(r.getConfno());
     }
 
+    private List<RoomModerator> getModerators(List<Map<String, Object>> list, Long roomId) {
+		List<RoomModerator> result = new ArrayList<RoomModerator>();
+
+		for (Map<String, Object> roomModeratorObj : list) {
+			Long roomModeratorsId = roomModeratorObj.containsKey("roomModeratorsId") ? Long.parseLong(roomModeratorObj.get("roomModeratorsId").toString()) : null;
+			Long userId = Long.parseLong(roomModeratorObj.get("userId").toString());
+			Boolean isSuperModerator = Boolean.parseBoolean(roomModeratorObj.get("isSuperModerator").toString());
+
+			RoomModerator rm = new RoomModerator();
+			rm.setRoomModeratorsId(roomModeratorsId);
+			rm.setRoomId(roomId);
+			rm.setUser(usersDao.get(userId));
+			rm.setIsSuperModerator(isSuperModerator);
+			
+			result.add(rm);
+		}
+		return result;
+    }
+
 	/**
 	 * adds a new Record to the table rooms
 	 * @param name
@@ -588,13 +609,14 @@ public class RoomManager implements IRoo
 
 				if (organisations != null) {
 					Long t = this.updateRoomOrganisations(organisations, r);
-					if (t == null)
+					if (t == null) {
 						return null;
+					}
 				}
 
 				if (roomModerators != null) {
-					roomModeratorsDao.addRoomModeratorByUserList(
-							roomModerators, r.getRooms_id());
+					r.setModerators(getModerators(roomModerators, r.getRooms_id()));
+					r = roomDao.update(r, ownerId);
 				}
 
 				return r.getRooms_id();
@@ -638,8 +660,8 @@ public class RoomManager implements IRoo
 				this.addRoomToOrganisation(3, returnId, organisation_id);
 
 				if (roomModerators != null) {
-					roomModeratorsDao.addRoomModeratorByUserList(
-							roomModerators, r.getRooms_id());
+					r.setModerators(getModerators(roomModerators, r.getRooms_id()));
+					r = roomDao.update(r, null);
 				}
 
 				return returnId;
@@ -708,13 +730,14 @@ public class RoomManager implements IRoo
 
 			if (organisations != null) {
 				Long t = this.updateRoomOrganisations(organisations, r);
-				if (t == null)
+				if (t == null) {
 					return null;
+				}
 			}
 
 			if (roomModerators != null) {
-				roomModeratorsDao.addRoomModeratorByUserList(roomModerators,
-						r.getRooms_id());
+				r.setModerators(getModerators(roomModerators, r.getRooms_id()));
+				r = roomDao.update(r, null);
 			}
 
 			return returnId;
@@ -740,8 +763,7 @@ public class RoomManager implements IRoo
 				log.debug("addRoomToOrganisation rooms '"
 						+ rOrganisation.getRoom().getName() + "'");
 				rOrganisation.setStarttime(new Date());
-				rOrganisation.setOrganisation(organisationManager
-						.getOrganisationById(organisation_id));
+				rOrganisation.setOrganisation(orgDao.get(organisation_id));
 				rOrganisation.setDeleted(false);
 
 				rOrganisation = em.merge(rOrganisation);
@@ -1081,16 +1103,17 @@ public class RoomManager implements IRoo
 			r.setAutoVideoSelect(autoVideoSelect);
 			r.setPin(conferencePin);
 			r.setSipEnabled(sipEnabled);
-			roomDao.update(r, ownerId);
+			r = roomDao.update(r, ownerId);
 
 			if (organisations != null) {
 				Long t = this.updateRoomOrganisations(organisations, r);
-				if (t == null)
+				if (t == null) {
 					return null;
+				}
 			}
 			if (roomModerators != null) {
-				roomModeratorsDao.updateRoomModeratorByUserList(roomModerators,
-						r.getRooms_id());
+				r.setModerators(getModerators(roomModerators, r.getRooms_id()));
+				r = roomDao.update(r, null);
 			}
 
 			return r.getRooms_id();
@@ -1130,7 +1153,7 @@ public class RoomManager implements IRoo
 					em.persist(r);
 				} else {
 					if (!em.contains(r)) {
-						em.merge(r);
+						r = em.merge(r);
 					}
 				}
 
@@ -1138,8 +1161,8 @@ public class RoomManager implements IRoo
 				// update as Moderator
 
 				if (roomModerators != null) {
-					roomModeratorsDao.updateRoomModeratorByUserList(
-							roomModerators, r.getRooms_id());
+					r.setModerators(getModerators(roomModerators, r.getRooms_id()));
+					r = roomDao.update(r, null);
 				}
 
 				return r.getRooms_id();

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=1601073&r1=1601072&r2=1601073&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 Sat Jun  7 07:45:55 2014
@@ -35,10 +35,10 @@ import org.apache.openmeetings.core.remo
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
 import org.apache.openmeetings.db.dao.user.ILdapLoginManagement;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.user.State;
@@ -71,7 +71,7 @@ public class LdapLoginManagement impleme
 	@Autowired
 	private LdapConfigDao ldapConfigDao;
 	@Autowired
-	private AdminUserDao usersDao;
+	private UserDao usersDao;
 	@Autowired
 	private TimezoneUtil timezoneUtil;
 
@@ -416,7 +416,7 @@ public class LdapLoginManagement impleme
 		User u = null;
 
 		try {
-			u = usersDao.getUserByLogin(user);
+			u = usersDao.getUserByName(user, User.Type.ldap);
 		} catch (Exception e) {
 			log.error("Error retrieving Userdata : " + e.getMessage());
 		}

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java Sat Jun  7 07:45:55 2014
@@ -502,7 +502,7 @@ public class ConferenceService {
 
 			if (AuthLevelUtil.checkUserLevel(user_level)) {
 
-				return roomModeratorsDao.getRoomModeratorByRoomId(roomId);
+				return roomModeratorsDao.getByRoomId(roomId);
 
 			}
 

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java Sat Jun  7 07:45:55 2014
@@ -40,9 +40,9 @@ import org.apache.openmeetings.db.dao.se
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
@@ -87,7 +87,7 @@ public class MainService implements IPen
 	@Autowired
 	private ConferenceLogDao conferenceLogDao;
 	@Autowired
-	private AdminUserDao usersDao;
+	private UserDao usersDao;
 	@Autowired
 	private LdapConfigDao ldapConfigDao;
 	@Autowired

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java Sat Jun  7 07:45:55 2014
@@ -24,7 +24,6 @@ import java.util.List;
 
 import org.apache.openmeetings.core.data.basic.FieldManager;
 import org.apache.openmeetings.core.data.conference.RoomManager;
-import org.apache.openmeetings.core.data.user.OrganisationManager;
 import org.apache.openmeetings.core.mail.MailHandler;
 import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
@@ -37,16 +36,15 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.ServerDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.IUserService;
 import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
 import org.apache.openmeetings.db.dao.user.PrivateMessagesDao;
 import org.apache.openmeetings.db.dao.user.SalutationDao;
 import org.apache.openmeetings.db.dao.user.UserContactsDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.server.Server;
-import org.apache.openmeetings.db.entity.user.Organisation;
 import org.apache.openmeetings.db.entity.user.Salutation;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.UserContact;
@@ -84,14 +82,12 @@ public class UserService implements IUse
 	@Autowired
 	private IUserManager userManager;
 	@Autowired
-	private AdminUserDao userDao;
+	private UserDao userDao;
 	@Autowired
 	private FieldManager fieldManager;
 	@Autowired
 	private SalutationDao salutationmanagement;
 	@Autowired
-	private OrganisationManager organisationManager;
-	@Autowired
 	private RoomManager roomManager;
 	@Autowired
 	private RoomDao roomDao;
@@ -159,61 +155,6 @@ public class UserService implements IUse
 	}
 
 	/**
-	 * get a list of all users of an organisation
-	 * 
-	 * @param SID
-	 * @param organisation_id
-	 * @param start
-	 * @param max
-	 * @param orderby
-	 * @param asc
-	 * @return list of all users of an organisation
-	 */
-	public List<User> getOrgUserList(String SID, long organisation_id,
-			int start, int max, String orderby, boolean asc) {
-		return organisationManager.getUsersByOrganisationId(organisation_id,
-				start, max, orderby, asc);
-	}
-
-	/**
-	 * get a list of all organisations of an user
-	 * 
-	 * @param SID
-	 * @param client_user
-	 * @param start
-	 * @param max
-	 * @param orderby
-	 * @param asc
-	 * @return list of all organisations of an user
-	 */
-	public List<Organisation> getOrganisationListByUser(String SID,
-			long client_user, int start, int max, String orderby, boolean asc) {
-		Long users_id = sessiondataDao.checkSession(SID);
-		long user_level = userManager.getUserLevelByID(users_id);
-		return organisationManager.getOrganisationsByUserId(user_level,
-				client_user, start, max, orderby, asc);
-	}
-
-	/**
-	 * gets a list of all not assigned organisations of a user
-	 * 
-	 * @param SID
-	 * @param client_user
-	 * @param start
-	 * @param max
-	 * @param orderby
-	 * @param asc
-	 * @return list of all not assigned organisations of a user
-	 */
-	public List<Organisation> getRestOrganisationListByUser(String SID,
-			long client_user, int start, int max, String orderby, boolean asc) {
-		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		return organisationManager.getRestOrganisationsByUserId(user_level,
-				client_user, start, max, orderby, asc);
-	}
-
-	/**
 	 * gets a whole user-list(admin-role only)
 	 * 
 	 * @param SID

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java?rev=1601073&r1=1601072&r2=1601073&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java Sat Jun  7 07:45:55 2014
@@ -38,7 +38,7 @@ import javax.persistence.PersistenceCont
 import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
-import org.apache.openmeetings.db.dao.user.AdminUserDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.util.DaoHelper;
 import org.red5.logging.Red5LoggerFactory;
@@ -66,8 +66,7 @@ public class ConfigurationDao implements
 	@PersistenceContext
 	private EntityManager em;
 
-	@Resource(name = "adminUserDao")
-	private AdminUserDao adminUserDao;
+	private UserDao userDao;
 
 	/**
 	 * @deprecated Dao's are not the place to store session variables
@@ -145,14 +144,10 @@ public class ConfigurationDao implements
 		}
 	}
 
-	public List<Configuration> getConfigurations(int start, int max,
-			String orderby, boolean asc) {
+	public List<Configuration> getConfigurations(int start, int max, String orderby, boolean asc) {
 		try {
 
-			String query = "SELECT c FROM Configuration c " //
-					+ "LEFT JOIN FETCH c.user " //
-					+ "WHERE c.deleted = false " //
-					+ "ORDER BY " + orderby;
+			String query = "SELECT c FROM Configuration c LEFT JOIN FETCH c.user WHERE c.deleted = false ORDER BY " + orderby;
 
 			if (asc) {
 				query += " ASC";
@@ -238,7 +233,7 @@ public class ConfigurationDao implements
 			em.persist(entity);
 		} else {
 			if (userId != null) {
-				entity.setUser(adminUserDao.get(userId));
+				entity.setUser(userDao.get(userId));
 			}
 			entity.setDeleted(deleted);
 			entity.setUpdatetime(new Date());