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 2012/09/21 20:39:08 UTC

svn commit: r1388608 - in /incubator/openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ src/org/apache/openmeetings/data/ src/org/apache/openmeetings/data/basic/ src/org/apache/openmeetings/data/basic/dao/ src/org/apache/openmeetings/data/user/ src/o...

Author: solomax
Date: Fri Sep 21 18:39:07 2012
New Revision: 1388608

URL: http://svn.apache.org/viewvc?rev=1388608&view=rev
Log:
Wicket: Admin/Groups
	OmDAO: userId is added to update/delete methods + implementations;
	Organisation_Users: hashCode+equals are added for better work with list/set;
	Ajax confirm was generalized;
	Confirm was added to base form delete;
	Groups: create/delete/update implemented
	GroupUsers: delete + incomplete add is added
	code cleanup;

Added:
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java
      - copied, changed from r1388489, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationDAO.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java
      - copied, changed from r1388489, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationUserDAO.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmCallListener.java
Removed:
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationDAO.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationUserDAO.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/OmDAO.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Configurationmanagement.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/LdapConfigDaoImpl.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Organisationmanagement.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmableAjaxLink.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.html
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml Fri Sep 21 18:39:07 2012
@@ -179,8 +179,8 @@
 		class="org.apache.openmeetings.data.calendar.daos.AppointmentCategoryDaoImpl" />
 	<bean id="roommanagement" class="org.apache.openmeetings.data.conference.Roommanagement" />
 	<bean id="organisationmanagement" class="org.apache.openmeetings.data.user.Organisationmanagement" />
-	<bean id="organisationDAO" class="org.apache.openmeetings.data.user.OrganisationDAO" />
-	<bean id="organisationUserDAO" class="org.apache.openmeetings.data.user.OrganisationUserDAO" />
+	<bean id="organisationDAO" class="org.apache.openmeetings.data.user.dao.OrganisationDAO" />
+	<bean id="organisationUserDAO" class="org.apache.openmeetings.data.user.dao.OrganisationUserDAO" />
 	<bean id="salutationmanagement" class="org.apache.openmeetings.data.user.Salutationmanagement" />
 	<bean id="errorManagement" class="org.apache.openmeetings.data.basic.ErrorManagement" />
 	<bean id="navimanagement" class="org.apache.openmeetings.data.basic.Navimanagement" />

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/OmDAO.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/OmDAO.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/OmDAO.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/OmDAO.java Fri Sep 21 18:39:07 2012
@@ -26,6 +26,6 @@ public interface OmDAO<T extends OmEntit
 	T get(long id);
 	List<T> get(int start, int count);
 	long count();
-	void update(T entity);
-	void delete(T entity);
+	void update(T entity, long userId);
+	void delete(T entity, long userId);
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Configurationmanagement.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Configurationmanagement.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Configurationmanagement.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/Configurationmanagement.java Fri Sep 21 18:39:07 2012
@@ -387,12 +387,12 @@ public class Configurationmanagement imp
 		return selectMaxFromConfigurations();
 	}
 
-	public void update(Configuration entity) {
+	public void update(Configuration entity, long userId) {
 		// TODO Auto-generated method stub
 		
 	}
 
-	public void delete(Configuration entity) {
+	public void delete(Configuration entity, long userId) {
 		// TODO Auto-generated method stub
 		
 	}

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDAO.java Fri Sep 21 18:39:07 2012
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.data.basic;
 
+import java.util.Date;
 import java.util.List;
 
 import javax.persistence.EntityManager;
@@ -67,7 +68,8 @@ public class FieldLanguagesValuesDAO imp
 		return q.getSingleResult();
 	}
 
-	public void update(Fieldlanguagesvalues entity) {
+	public void update(Fieldlanguagesvalues entity, long userId) {
+		entity.setUpdatetime(new Date());
 		if (entity.getFieldlanguagesvalues_id() == null) {
 			em.persist(entity);
 		} else {
@@ -75,8 +77,9 @@ public class FieldLanguagesValuesDAO imp
 		}
 	}
 
-	public void delete(Fieldlanguagesvalues entity) {
+	public void delete(Fieldlanguagesvalues entity, long userId) {
 		entity.setDeleted(true);
+		entity.setUpdatetime(new Date());
 		entity = em.merge(entity);
 	}
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/LdapConfigDaoImpl.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/LdapConfigDaoImpl.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/LdapConfigDaoImpl.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/LdapConfigDaoImpl.java Fri Sep 21 18:39:07 2012
@@ -285,13 +285,13 @@ public class LdapConfigDaoImpl implement
 	}
 
 
-	public void update(LdapConfig entity) {
+	public void update(LdapConfig entity, long userId) {
 		// TODO Auto-generated method stub
 		
 	}
 
 
-	public void delete(LdapConfig entity) {
+	public void delete(LdapConfig entity, long userId) {
 		// TODO Auto-generated method stub
 		
 	}

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Organisationmanagement.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Organisationmanagement.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Organisationmanagement.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Organisationmanagement.java Fri Sep 21 18:39:07 2012
@@ -38,6 +38,8 @@ import javax.persistence.criteria.Root;
 import org.apache.openmeetings.OpenmeetingsVariables;
 import org.apache.openmeetings.data.basic.AuthLevelmanagement;
 import org.apache.openmeetings.data.beans.basic.SearchResult;
+import org.apache.openmeetings.data.user.dao.OrganisationDAO;
+import org.apache.openmeetings.data.user.dao.OrganisationUserDAO;
 import org.apache.openmeetings.data.user.dao.UsersDaoImpl;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
 import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
@@ -66,6 +68,8 @@ public class Organisationmanagement {
 	@Autowired
 	private OrganisationDAO orgDao;
 	@Autowired
+	private OrganisationUserDAO orgUserDao;
+	@Autowired
 	private AuthLevelmanagement authLevelManagement;
 
 	/**
@@ -137,7 +141,7 @@ public class Organisationmanagement {
 			if (authLevelManagement.checkAdminLevel(user_level)) {
 				SearchResult<Organisation> sresult = new SearchResult<Organisation>();
 				sresult.setObjectName(Organisation.class.getName());
-				sresult.setRecords(this.selectMaxFromOrganisations());
+				sresult.setRecords(orgDao.count());
 				sresult.setResult(this.getOrganisations(start, max, orderby,
 						asc));
 				return sresult;
@@ -202,24 +206,6 @@ public class Organisationmanagement {
 	}
 
 	/**
-	 * 
-	 * @return
-	 */
-	public Long selectMaxFromOrganisations() {
-		try {
-			// get all users
-			TypedQuery<Long> query = em
-					.createQuery("select max(c.organisation_id) from Organisation c where c.deleted = false", Long.class);
-			Long l = query.getSingleResult();
-			log.debug("selectMaxFromOrganisations" + l);
-			return l;
-		} catch (Exception ex2) {
-			log.error("[selectMaxFromUsers] ", ex2);
-		}
-		return null;
-	}
-
-	/**
 	 * updates an organisation if user_level is admin
 	 * 
 	 * @param user_level
@@ -233,7 +219,7 @@ public class Organisationmanagement {
 			String orgname, long users_id) {
 		try {
 
-			Organisation org = this.getOrganisationById(organisation_id);
+			Organisation org = orgDao.get(organisation_id);
 			org.setName(orgname);
 			org.setUpdatedby(users_id);
 			org.setUpdatetime(new Date());
@@ -355,7 +341,7 @@ public class Organisationmanagement {
 			long organisation_id) {
 		try {
 			if (authLevelManagement.checkAdminLevel(user_level)) {
-				return this.getOrganisationById(organisation_id);
+				return orgDao.get(organisation_id);
 			} else {
 				log.error("[getOrganisationById] authorization required");
 			}
@@ -372,12 +358,7 @@ public class Organisationmanagement {
 	 * @return
 	 */
 	public Organisation getOrganisationById(long organisation_id) {
-		try {
-			return orgDao.get(organisation_id);
-		} catch (Exception ex2) {
-			log.error("[getOrganisationById]", ex2);
-		}
-		return null;
+		return orgDao.get(organisation_id);
 	}
 
 	public Organisation getOrganisationByIdBackup(long organisation_id) {
@@ -421,28 +402,11 @@ public class Organisationmanagement {
 	 */
 	public Long deleteOrganisation(long organisation_id, long updatedby) {
 		try {
-			em.createNamedQuery("deleteUsersFromOrganisation")
-				.setParameter("organisation_id", organisation_id)
-				.executeUpdate();
-
-			Organisation org = this.getOrganisationById(organisation_id);
-			org.setDeleted(true);
-			org.setUpdatedby(updatedby);
-
-			if (org.getOrganisation_id() == null) {
-				em.persist(org);
-			} else {
-				if (!em.contains(org)) {
-					em.merge(org);
-				}
-			}
-
-			return org.getOrganisation_id();
-
+			orgDao.delete(orgDao.get(organisation_id), updatedby);
 		} catch (Exception ex2) {
 			log.error("[deleteOrganisation]", ex2);
 		}
-		return null;
+		return organisation_id;
 	}
 
 	/**
@@ -470,7 +434,7 @@ public class Organisationmanagement {
 	public Organisation_Users getOrgUser(Long organisation_id,
 			Long insertedby) {
 		
-		Organisation_Users orgUser = new Organisation_Users(getOrganisationById(organisation_id));
+		Organisation_Users orgUser = new Organisation_Users(orgDao.get(organisation_id));
 		orgUser.setDeleted(false);
 		
 		return orgUser;
@@ -552,7 +516,7 @@ public class Organisationmanagement {
 
 			SearchResult<Users> sResult = new SearchResult<Users>();
 			sResult.setObjectName(Users.class.getName());
-			sResult.setRecords(selectMaxUsersByOrganisationId(organisation_id));
+			sResult.setRecords(orgUserDao.count(organisation_id));
 			sResult.setResult(getUsersByOrganisationId(organisation_id,
 					start, max, orderby, asc));
 			return sResult;
@@ -563,21 +527,6 @@ public class Organisationmanagement {
 		return null;
 	}
 
-	private Long selectMaxUsersByOrganisationId(long organisation_id) {
-		try {
-			TypedQuery<Long> query = em.createNamedQuery("selectMaxUsersByOrganisationId", Long.class);
-			query.setParameter("organisation_id", organisation_id);
-
-			Long l = query.getSingleResult();
-			log.debug("selectMaxUsersByOrganisationId" + l);
-			return l;
-
-		} catch (Exception ex2) {
-			log.error("[getUsersByOrganisationId]", ex2);
-		}
-		return null;
-	}
-
 	/**
 	 * get a list of all users of an organisation
 	 * 

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java (from r1388489, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationDAO.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationDAO.java&r1=1388489&r2=1388608&rev=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationDAO.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java Fri Sep 21 18:39:07 2012
@@ -16,8 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.data.user;
+package org.apache.openmeetings.data.user.dao;
 
+import java.util.Date;
 import java.util.List;
 
 import javax.persistence.EntityManager;
@@ -59,13 +60,26 @@ public class OrganisationDAO implements 
 		return q.getSingleResult();
 	}
 
-	public void update(Organisation entity) {
-		// TODO Auto-generated method stub
-		
+	public void update(Organisation entity, long userId) {
+		if (entity.getOrganisation_id() == null) {
+			entity.setInsertedby(userId);
+			entity.setStarttime(new Date());
+			em.persist(entity);
+		} else {
+			entity.setUpdatedby(userId);
+			entity.setUpdatetime(new Date());
+			em.merge(entity);
+		}
 	}
 
-	public void delete(Organisation entity) {
-		// TODO Auto-generated method stub
-		
+	public void delete(Organisation entity, long userId) {
+		em.createNamedQuery("deleteUsersFromOrganisation")
+			.setParameter("id", entity.getOrganisation_id())
+			.executeUpdate();
+
+		entity.setDeleted(true);
+		entity.setUpdatedby(userId);
+
+		em.merge(entity);
 	}
 }

Copied: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java (from r1388489, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationUserDAO.java)
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationUserDAO.java&r1=1388489&r2=1388608&rev=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/OrganisationUserDAO.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java Fri Sep 21 18:39:07 2012
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.data.user;
+package org.apache.openmeetings.data.user.dao;
 
 import java.util.List;
 
@@ -26,10 +26,16 @@ import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.data.OmDAO;
 import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
+import org.apache.openmeetings.persistence.beans.user.Users;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 
+@Transactional
 public class OrganisationUserDAO implements OmDAO<Organisation_Users> {
 	@PersistenceContext
 	private EntityManager em;
+	@Autowired
+	private UsersDaoImpl usersDao;
 
 	public Organisation_Users get(long id) {
 		TypedQuery<Organisation_Users> q = em.createNamedQuery("getOrganisationUsersById", Organisation_Users.class);
@@ -59,14 +65,20 @@ public class OrganisationUserDAO impleme
 		return q.getSingleResult();
 	}
 
-	public void update(Organisation_Users entity) {
-		// TODO Auto-generated method stub
+	public void update(Organisation_Users entity, long userId) {
+		//if (entity.getOrganisation_users_id())// TODO Auto-generated method stub
 		
 	}
 
-	public void delete(Organisation_Users entity) {
-		// TODO Auto-generated method stub
-		
+	public void delete(Organisation_Users entity, long userId) {
+		if (entity.getOrganisation_users_id() != null) {
+			Users u = usersDao.getUser(entity.getUser_id());
+			int idx = u.getOrganisation_users().indexOf(entity);
+			//entity has been detached need to re-fetch
+			Organisation_Users ou = u.getOrganisation_users().remove(idx);
+			em.remove(ou);
+			usersDao.updateUser(u);
+		}
 	}
 
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java Fri Sep 21 18:39:07 2012
@@ -55,18 +55,18 @@ public class UsersDaoImpl implements OmD
 	}
 	
 	public List<Users> get(int first, int count) {
-		return getNondeletedUsers((int)first, (int)count);
+		return getNondeletedUsers(first, count);
 	}
 	
 	public long count() {
 		return selectMaxFromUsers();
 	}
 	
-	public void update(Users u) {
+	public void update(Users u, long userId) {
 		updateUser(u); 
 	}
 
-	public void delete(Users u) {
+	public void delete(Users u, long userId) {
 		deleteUserID(u.getUser_id()); 
 	}
 	

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/domain/Organisation_Users.java Fri Sep 21 18:39:07 2012
@@ -39,15 +39,12 @@ import org.simpleframework.xml.Root;
 
 @Entity
 @NamedQueries({
-	@NamedQuery(name="selectMaxUsersByOrganisationId",
-		query="SELECT COUNT(c.organisation_users_id) FROM Organisation_Users c WHERE c.deleted = false AND c.organisation.organisation_id = :organisation_id")
-	, @NamedQuery(name="getOrganisation_UserByUserAndOrganisation",
+	@NamedQuery(name="getOrganisation_UserByUserAndOrganisation",
 		query="SELECT ou FROM Users u, IN(u.organisation_users) ou WHERE u.deleted = false AND u.user_id = :user_id AND ou.organisation.organisation_id = :organisation_id")
-	, @NamedQuery(name="deleteUsersFromOrganisation",
-	query="DELETE FROM Organisation_Users c WHERE c.organisation.organisation_id = :organisation_id")
-	, @NamedQuery(name="countOrganisationUsers", query="SELECT COUNT(c) FROM Organisation_Users c WHERE c.organisation.organisation_id = :id AND c.deleted = false")
+	, @NamedQuery(name="deleteUsersFromOrganisation", query="DELETE FROM Organisation_Users c WHERE c.organisation.organisation_id = :id")
+	, @NamedQuery(name="countOrganisationUsers", query="SELECT COUNT(c) FROM Organisation_Users c WHERE c.organisation.organisation_id = :id")
 	, @NamedQuery(name="getOrganisationUsersById", query="SELECT c FROM Organisation_Users c WHERE c.organisation_users_id = :id")
-	, @NamedQuery(name="getOrganisationUsersByOrgId", query="SELECT c FROM Organisation_Users c WHERE c.organisation.organisation_id = :id AND c.deleted = false")
+	, @NamedQuery(name="getOrganisationUsersByOrgId", query="SELECT c FROM Organisation_Users c WHERE c.organisation.organisation_id = :id")
 })
 @Table(name = "organisation_users")
 @Root(name="user_organisation")
@@ -142,4 +139,32 @@ public class Organisation_Users implemen
 	public void setIsModerator(Boolean isModerator) {
 		this.isModerator = isModerator;
 	}
+
+	@Override
+	public int hashCode() {
+		final int prime = 31;
+		int result = 1;
+		result = prime
+				* result
+				+ ((organisation_users_id == null) ? 0 : organisation_users_id
+						.hashCode());
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj)
+			return true;
+		if (obj == null)
+			return false;
+		if (getClass() != obj.getClass())
+			return false;
+		Organisation_Users other = (Organisation_Users) obj;
+		if (organisation_users_id == null) {
+			if (other.organisation_users_id != null)
+				return false;
+		} else if (!organisation_users_id.equals(other.organisation_users_id))
+			return false;
+		return true;
+	}
 }

Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmCallListener.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmCallListener.java?rev=1388608&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmCallListener.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmCallListener.java Fri Sep 21 18:39:07 2012
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.components;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
+import org.apache.wicket.core.util.string.JavaScriptUtils;
+
+public class ConfirmCallListener extends AjaxCallListener {
+	private static final long serialVersionUID = 7355235720213137963L;
+
+	public ConfirmCallListener(long id) {
+		this(id, "");
+	}
+	
+	//TODO confirm need to be replaced with jQuery modal dialog
+	public ConfirmCallListener(long id, String js) {
+		onPrecondition("if (!confirm('" + JavaScriptUtils.escapeQuotes(WebSession.getString(id)) + "')) {" 
+				+ js + "; return false;}");
+	}
+}

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmableAjaxLink.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmableAjaxLink.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmableAjaxLink.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/ConfirmableAjaxLink.java Fri Sep 21 18:39:07 2012
@@ -18,23 +18,21 @@
  */
 package org.apache.openmeetings.web.components;
 
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 
 public abstract class ConfirmableAjaxLink extends AjaxLink<Void> {
 	private static final long serialVersionUID = 7301747891668537168L;
-	private String confirmText;
+	private long confirmId;
 
-	public ConfirmableAjaxLink(String id, String text) {
+	public ConfirmableAjaxLink(String id, long confirmId) {
 		super(id);
-		confirmText = text;
+		this.confirmId = confirmId;
 	}
 
-	//TODO confirm need to be replaced with jQuery modal dialog
 	@Override
 	protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
 		super.updateAjaxAttributes(attributes);
-		attributes.getAjaxCallListeners().add(new AjaxCallListener().onPrecondition("if (!confirm('" + confirmText + "')) {hideBusyIndicator(); return false;}"));
+		attributes.getAjaxCallListeners().add(new ConfirmCallListener(confirmId, "hideBusyIndicator();"));
 	}
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java Fri Sep 21 18:39:07 2012
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.web.components.admin;
 
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.components.ConfirmCallListener;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.attributes.AjaxCallListener;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
@@ -106,8 +107,7 @@ public abstract class AdminBaseFormPanel
 			@Override
 			protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
 				super.updateAjaxAttributes(attributes);
-				//FIXME need to be generalized
-				attributes.getAjaxCallListeners().add(new AjaxCallListener().onBefore("if (!confirm('" + WebSession.getString(833L) + "')) {return false;}"));
+				attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
 			}
 			
 			@Override

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupForm.java Fri Sep 21 18:39:07 2012
@@ -18,31 +18,35 @@
  */
 package org.apache.openmeetings.web.components.admin.groups;
 
-import org.apache.openmeetings.data.user.OrganisationDAO;
+import org.apache.openmeetings.data.user.dao.OrganisationDAO;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.components.admin.AdminBaseForm;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.RequiredTextField;
 import org.apache.wicket.model.CompoundPropertyModel;
 
 public class GroupForm extends AdminBaseForm<Organisation> {
 	private static final long serialVersionUID = -1720731686053912700L;
-	private GroupUsersPanel listContainer;
+	private GroupUsersPanel usersPanel;
+	private WebMarkupContainer groupList;
 	
-	public GroupForm(String id, final Organisation organisation) {
+	public GroupForm(String id, WebMarkupContainer groupList, Organisation organisation) {
 		super(id, new CompoundPropertyModel<Organisation>(organisation));
+		this.groupList = groupList;
 		setOutputMarkupId(true);
 		
 		add(new RequiredTextField<String>("name"));
-		listContainer = new GroupUsersPanel("users", getOrgId());
-		add(listContainer);
+		usersPanel = new GroupUsersPanel("users", getOrgId());
+		add(usersPanel);
 	}
 	
 	void updateView(AjaxRequestTarget target) {
-		listContainer.update(getOrgId());
-		target.add(listContainer);
+		usersPanel.update(getOrgId());
+		target.add(this);
 	}
 	
 	private long getOrgId() {
@@ -52,7 +56,7 @@ public class GroupForm extends AdminBase
 	@Override
 	protected void onNewSubmit(AjaxRequestTarget target, Form<?> f) {
 		this.setModelObject(new Organisation());
-		target.add(this);
+		updateView(target);
 	}
 	
 	@Override
@@ -64,8 +68,18 @@ public class GroupForm extends AdminBase
 			org = new Organisation();
 		}
 		this.setModelObject(org);
-		listContainer.update(getOrgId());
-		target.add(this);
+		updateView(target);
+	}
+	
+	@Override
+	protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
+		Application.getBean(OrganisationDAO.class).delete(getModelObject(), WebSession.getUserId());
+		target.add(groupList);
 	}
 	
+	@Override
+	protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
+		Application.getBean(OrganisationDAO.class).update(getModelObject(), WebSession.getUserId());
+		target.add(groupList);
+	}
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.html?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.html Fri Sep 21 18:39:07 2012
@@ -23,14 +23,14 @@
 	<wicket:panel>
 		<div style="border: 1px solid black;">
 			<span wicket:id="navigator">[dataview navigator]</span>
-			<table class="adminListTable">
+			<table class="adminListTable" style="min-width: 200px;">
 				<tr>
 					<th><wicket:ommessage key="177" /></th>
 					<th><wicket:ommessage key="275" /></th>
 				</tr>			
 	    		<tr wicket:id="userList">
 					<td><span wicket:id="label"></span></td>
-					<td>Delete</td>
+					<td><div class="formCancelButton" wicket:id="deleteUserBtn" wicket:ommessage="title:274"><input/></div></td>
 				</tr>
 			</table>
 		</div>

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupUsersPanel.java Fri Sep 21 18:39:07 2012
@@ -18,15 +18,20 @@
  */
 package org.apache.openmeetings.web.components.admin.groups;
 
-import org.apache.openmeetings.data.user.OrganisationUserDAO;
+import org.apache.openmeetings.data.user.dao.OrganisationUserDAO;
 import org.apache.openmeetings.data.user.dao.UsersDaoImpl;
 import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
 import org.apache.openmeetings.persistence.beans.user.Users;
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.components.ConfirmCallListener;
 import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.OmDataProvider;
 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.panel.Panel;
 import org.apache.wicket.markup.repeater.Item;
@@ -37,6 +42,10 @@ public class GroupUsersPanel extends Pan
 	private static final long serialVersionUID = -1813488722913433227L;
 	private long organisationId;
 	
+	public static String getUser(Users u) {
+		return u.getLogin() + " [" + u.getFirstname() + ", " + u.getLastname() + "]";
+	}
+	
 	public GroupUsersPanel(String id, long orgId) {
 		super(id);
 		this.organisationId = orgId;
@@ -59,7 +68,22 @@ public class GroupUsersPanel extends Pan
 			protected void populateItem(Item<Organisation_Users> item) {
 				final Organisation_Users orgUser = item.getModelObject();
 				Users u = Application.getBean(UsersDaoImpl.class).get(orgUser.getUser_id());
-				item.add(new Label("label", Model.of(u.getLogin() + " [" + u.getFirstname() + ", " + u.getLastname() + "]")));
+				item.add(new Label("label", Model.of(getUser(u))));
+				item.add(new WebMarkupContainer("deleteUserBtn").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(OrganisationUserDAO.class).delete(orgUser, WebSession.getUserId());
+						target.add(GroupUsersPanel.this);
+					}
+				})); 
 				item.add(AttributeModifier.append("class", ((item.getIndex() % 2 == 1) ? "even" : "odd")));
 			}
 		};

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html Fri Sep 21 18:39:07 2012
@@ -20,6 +20,17 @@
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" 
 	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
+	<wicket:head>
+		<script type="text/javascript">
+			function omComponentInit() {
+				$('#addUsers').dialog({
+					closeOnEscape: true
+					, autoOpen: false
+					, resizable: false
+				});
+			};
+		</script>
+	</wicket:head>
 	<wicket:panel>
 		<table class="adminPanel">
 			<tr>
@@ -56,7 +67,7 @@
 							</tr>
 							<tr>
 								<td style="font-weight: bold;"><wicket:ommessage key="273" /></td>
-								<td>&nbsp;</td>
+								<td style="text-align: right;"><div class="formNewButton" onclick="$('#addUsers :text').val(''); $('#addUsers').dialog('open');"><input/></div></td>
 							</tr>
 							<tr>
 								<td><wicket:ommessage key="177" /></td>
@@ -69,5 +80,25 @@
 				</td>
 			</tr>
 		</table>
+		<div id="addUsers" wicket:ommessage="title:180" style="display: none;">
+			<form wicket:id="addUsers">
+				<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"></select></td>
+					</tr>
+					<tr>
+						<td style="text-align: right"><input type="button" wicket:id="add" /></td>
+					</tr>
+				</table>
+			</form>
+		</div>
 	</wicket:panel>
 </html>

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java Fri Sep 21 18:39:07 2012
@@ -18,26 +18,40 @@
  */
 package org.apache.openmeetings.web.components.admin.groups;
 
-import org.apache.openmeetings.data.user.OrganisationDAO;
+import static org.apache.openmeetings.web.components.admin.groups.GroupUsersPanel.getUser;
+
+import org.apache.openmeetings.data.user.dao.OrganisationDAO;
+import org.apache.openmeetings.data.user.dao.UsersDaoImpl;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
+import org.apache.openmeetings.persistence.beans.user.Users;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.components.admin.AdminPanel;
 import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
 import org.apache.openmeetings.web.data.OmDataProvider;
 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.html.form.IChoiceRenderer;
+import org.apache.wicket.markup.html.form.ListMultipleChoice;
+import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
 
 public class GroupsPanel extends AdminPanel {
-
-	private static final long serialVersionUID = -1L;
+	private static final long serialVersionUID = -5170400556006464830L;
+	private String userSearchText;
 	
 	public GroupsPanel(String id) {
 		super(id);
-		final GroupForm form = new GroupForm("form", new Organisation());
+		final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
+		final GroupForm form = new GroupForm("form", listContainer, new Organisation());
         add(form);
 		
 		DataView<Organisation> dataView = new DataView<Organisation>("groupList", new OmDataProvider<Organisation>(OrganisationDAO.class)) {
@@ -61,7 +75,6 @@ public class GroupsPanel extends AdminPa
 			}
 		};
 
-		final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
 		add(listContainer.add(dataView).setOutputMarkupId(true));
 		add(new PagedEntityListPanel("navigator", dataView) {
 			private static final long serialVersionUID = 5097048616003411362L;
@@ -71,5 +84,38 @@ public class GroupsPanel extends AdminPa
 				target.add(listContainer);
 			}
 		});
+		
+		add(new Form<Void>("addUsers"){
+			private static final long serialVersionUID = 3726465576292784604L;
+
+			{
+				add(new TextField<String>("searchText", new PropertyModel<String>(GroupsPanel.this, "userSearchText")));
+				add(new AjaxButton("search", Model.of(WebSession.getString(182L))) {
+					private static final long serialVersionUID = -4752180617634945030L;
+
+					protected void onAfterSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
+						
+					}
+				});
+				add(new ListMultipleChoice<Users>("users", Application.getBean(UsersDaoImpl.class).getAllUsers(), new IChoiceRenderer<Users>() {
+					private static final long serialVersionUID = 1L;
+
+					public Object getDisplayValue(Users object) {
+						return getUser(object);
+					}
+
+					public String getIdValue(Users object, int index) {
+						return "" + object.getUser_id();
+					}
+				}));
+				add(new AjaxButton("add", Model.of(WebSession.getString(175L))) {
+					private static final long serialVersionUID = 5553555064487161840L;
+
+					protected void onAfterSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
+						
+					}
+				});
+			}
+		});
 	}
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.html Fri Sep 21 18:39:07 2012
@@ -22,13 +22,13 @@
 	xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
 	<wicket:panel>
 		<script type="text/javascript">
-			$(function(){
+			function omComponentInit() {
 				$('#addLanguage').dialog({
 					closeOnEscape: true
 					, autoOpen: false
 					, resizable: false
 				});
-			});
+			};
 		</script>
 		<table class="adminPanel">
 			<tr>

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java Fri Sep 21 18:39:07 2012
@@ -27,6 +27,7 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.components.ConfirmCallListener;
 import org.apache.openmeetings.web.components.admin.AdminBaseForm;
 import org.apache.openmeetings.web.components.admin.AdminPanel;
 import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
@@ -34,7 +35,6 @@ 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.attributes.AjaxCallListener;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -86,14 +86,14 @@ public class LangPanel extends AdminPane
 			
 			@Override
 			protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
-				Application.getBean(FieldLanguagesValuesDAO.class).update(getModelObject());
+				Application.getBean(FieldLanguagesValuesDAO.class).update(getModelObject(), WebSession.getUserId());
 				//FIXME reload
 			}
 			
 			//FIXME confirmation
 			@Override
 			protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
-				Application.getBean(FieldLanguagesValuesDAO.class).delete(getModelObject());
+				Application.getBean(FieldLanguagesValuesDAO.class).delete(getModelObject(), WebSession.getUserId());
 				//FIXME reload
 			}
 		};
@@ -166,8 +166,7 @@ public class LangPanel extends AdminPane
 			@Override
 			protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
 				super.updateAjaxAttributes(attributes);
-				//FIXME need to be generalized
-				attributes.getAjaxCallListeners().add(new AjaxCallListener().onBefore("if (!confirm('" + WebSession.getString(833L) + "')) {return false;}"));
+				attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
 			}
 			
 			@Override

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java?rev=1388608&r1=1388607&r2=1388608&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/MainPage.java Fri Sep 21 18:39:07 2012
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.web.pages;
 
 import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.components.ConfirmableAjaxLink;
 import org.apache.openmeetings.web.components.MenuPanel;
 import org.apache.openmeetings.web.components.user.ChatPanel;
@@ -39,7 +38,7 @@ public class MainPage extends BasePage {
 		add(contents);
 		menu = new MenuPanel("menu", contents);
 		add(menu);
-		add(new ConfirmableAjaxLink("logout", WebSession.getString(634L)) {
+		add(new ConfirmableAjaxLink("logout", 634L) {
 			private static final long serialVersionUID = -2994610981053570537L;
 
 			@Override