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


Reply via email to