Author: solomax
Date: Sun Oct 21 11:24:59 2012
New Revision: 1400625

URL: http://svn.apache.org/viewvc?rev=1400625&view=rev
Log:
Wicket: sorting is added to the admin users panel

Added:
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/DataViewContainer.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmOrderByBorder.java
Modified:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/OmDAO.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ConfigurationDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/LdapConfigDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/RoomDAO.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.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/labels/LangPanel.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.html
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmDataProvider.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css 
(original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/theme.css 
Sun Oct 21 11:24:59 2012
@@ -379,11 +379,11 @@ div.tableWrapper {
 .ui-dialog {
     -moz-box-shadow: 3px 3px 4px #000;
     -webkit-box-shadow: 3px 3px 4px #000;
-    box-shadow: 3px 3px 4px #000;
     /* For IE 8 */
     -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, 
Direction=135, Color='#000000')";
     /* For IE 5.5 - 7 */
     filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, 
Direction=135, Color='#000000');
+       box-shadow: 3px 3px 4px #000;
 }
 
 .info-icon {
@@ -399,4 +399,9 @@ div.tableWrapper {
 
 /* .adminForm select {
     max-width: 200px;
-} */
\ No newline at end of file
+} */
+
+.sort-icon {
+       display: inline-block !important;
+       text-indent: 0px !important;
+}

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=1400625&r1=1400624&r2=1400625&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
 Sun Oct 21 11:24:59 2012
@@ -54,9 +54,10 @@ public interface OmDAO<T extends OmEntit
         * @param search - string search criteria to filter entities
         * @param start - the start to range to retrieve
         * @param count - maximum instance count to retrieve
+        * @param order - column and sort order
         * @return list of instances in the range specified
         */
-       List<T> get(String search, int start, int count);
+       List<T> get(String search, int start, int count, String order);
 
        /**
         * Count the number of instances of {@link T}

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldLanguagesValuesDaoImpl.java
 Sun Oct 21 11:24:59 2012
@@ -56,12 +56,12 @@ public class FieldLanguagesValuesDaoImpl
                                Long.class, "1"), first, count);
        }
 
-       public List<Fieldlanguagesvalues> get(String search, int start, int 
count) {
+       public List<Fieldlanguagesvalues> get(String search, int start, int 
count, String sort) {
                // TODO Auto-generated method stub
                return null;
        }
        
-       public List<Fieldlanguagesvalues> get(Long language_id, String search, 
int start, int count) {
+       public List<Fieldlanguagesvalues> get(Long language_id, String search, 
int start, int count, String sort) {
                // TODO Auto-generated method stub
                return null;
        }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/FieldValueDaoImpl.java
 Sun Oct 21 11:24:59 2012
@@ -65,13 +65,20 @@ public class FieldValueDaoImpl implement
                return get(getDefaultLanguage(), start, count);
        }
 
-       public List<Fieldvalues> get(String search, int start, int count) {
-               return get(getDefaultLanguage(), search, start, count);
+       public List<Fieldvalues> get(String search, int start, int count, 
String sort) {
+               return get(getDefaultLanguage(), search, start, count, sort);
        }
        
-       public List<Fieldvalues> get(Long language_id, String search, int 
start, int count) {
-               String sql = DaoHelper.getSearchQuery("Fieldlanguagesvalues", 
"flv", search, true, false, searchFields)
-                               + " AND flv.fieldvalues.deleted = false AND 
flv.language_id = :lang";
+       public List<Fieldvalues> get(Long language_id, String search, int 
start, int count, String sort) {
+               String sql = DaoHelper.getSearchQuery(
+                               "Fieldlanguagesvalues"
+                               , "flv"
+                               , search
+                               , true
+                               , false
+                               , "flv.fieldvalues.deleted = false AND 
flv.language_id = :lang"
+                               , sort
+                               , searchFields);
                TypedQuery<Fieldlanguagesvalues> q = em.createQuery(sql, 
Fieldlanguagesvalues.class);
                q.setParameter("lang", language_id);
                q.setFirstResult(start);
@@ -117,8 +124,15 @@ public class FieldValueDaoImpl implement
        }
        
        public long count(Long language_id, String search) {
-               String sql = DaoHelper.getSearchQuery("Fieldlanguagesvalues", 
"flv", search, true, true, searchFields)
-                               + " AND flv.fieldvalues.deleted = false AND 
flv.language_id = :lang";
+               String sql = DaoHelper.getSearchQuery(
+                               "Fieldlanguagesvalues"
+                               , "flv"
+                               , search
+                               , true
+                               , true
+                               , "flv.fieldvalues.deleted = false AND 
flv.language_id = :lang"
+                               , null
+                               , searchFields);
                TypedQuery<Long> q = em.createQuery(sql, Long.class);
                q.setParameter("lang", language_id);
                return q.getSingleResult();

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ConfigurationDaoImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ConfigurationDaoImpl.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ConfigurationDaoImpl.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ConfigurationDaoImpl.java
 Sun Oct 21 11:24:59 2012
@@ -351,8 +351,8 @@ public class ConfigurationDaoImpl implem
                return q.getResultList();
        }
 
-       public List<Configuration> get(String search, int start, int count) {
-               TypedQuery<Configuration> q = 
em.createQuery(DaoHelper.getSearchQuery("Configuration", "c", search, true, 
false, searchFields), Configuration.class);
+       public List<Configuration> get(String search, int start, int count, 
String sort) {
+               TypedQuery<Configuration> q = 
em.createQuery(DaoHelper.getSearchQuery("Configuration", "c", search, true, 
false, sort, searchFields), Configuration.class);
                q.setFirstResult(start);
                q.setMaxResults(count);
                return q.getResultList();
@@ -363,7 +363,7 @@ public class ConfigurationDaoImpl implem
        }
 
        public long count(String search) {
-               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Configuration", "c", search, true, 
true, searchFields), Long.class);
+               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Configuration", "c", search, true, 
true, null, searchFields), Long.class);
                return q.getSingleResult();
        }
        

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=1400625&r1=1400624&r2=1400625&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
 Sun Oct 21 11:24:59 2012
@@ -289,8 +289,8 @@ public class LdapConfigDaoImpl implement
                return q.getResultList();
        }
 
-       public List<LdapConfig> get(String search, int start, int count) {
-               TypedQuery<LdapConfig> q = 
em.createQuery(DaoHelper.getSearchQuery("LdapConfig", "lc", search, true, 
false, searchFields), LdapConfig.class);
+       public List<LdapConfig> get(String search, int start, int count, String 
sort) {
+               TypedQuery<LdapConfig> q = 
em.createQuery(DaoHelper.getSearchQuery("LdapConfig", "lc", search, true, 
false, sort, searchFields), LdapConfig.class);
                q.setFirstResult(start);
                q.setMaxResults(count);
                return q.getResultList();
@@ -301,7 +301,7 @@ public class LdapConfigDaoImpl implement
        }
 
        public long count(String search) {
-               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("LdapConfig", "lc", search, true, true, 
searchFields), Long.class);
+               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("LdapConfig", "lc", search, true, true, 
null, searchFields), Long.class);
                return q.getSingleResult();
        }
        

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
 Sun Oct 21 11:24:59 2012
@@ -83,8 +83,8 @@ public class ServerDaoImpl implements Om
                return q.getResultList();
        }
        
-       public List<Server> get(String search, int start, int count) {
-               TypedQuery<Server> q = 
em.createQuery(DaoHelper.getSearchQuery("Server", "s", search, true, false, 
searchFields), Server.class);
+       public List<Server> get(String search, int start, int count, String 
order) {
+               TypedQuery<Server> q = 
em.createQuery(DaoHelper.getSearchQuery("Server", "s", search, true, false, 
order, searchFields), Server.class);
                q.setFirstResult(start);
                q.setMaxResults(count);
                return q.getResultList();
@@ -103,7 +103,7 @@ public class ServerDaoImpl implements Om
        }
 
        public long count(String search) {
-               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Server", "s", search, true, true, 
searchFields), Long.class);
+               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Server", "s", search, true, true, 
null, searchFields), Long.class);
                return q.getSingleResult();
        }
        

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/RoomDAO.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/RoomDAO.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/RoomDAO.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/RoomDAO.java
 Sun Oct 21 11:24:59 2012
@@ -59,8 +59,8 @@ public class RoomDAO implements OmDAO<Ro
                return q.getResultList();
        }
 
-       public List<Rooms> get(String search, int start, int count) {
-               TypedQuery<Rooms> q = 
em.createQuery(DaoHelper.getSearchQuery("Rooms", "r", search, true, false, 
searchFields), Rooms.class);
+       public List<Rooms> get(String search, int start, int count, String 
sort) {
+               TypedQuery<Rooms> q = 
em.createQuery(DaoHelper.getSearchQuery("Rooms", "r", search, true, false, 
sort, searchFields), Rooms.class);
                q.setFirstResult(start);
                q.setMaxResults(count);
                return q.getResultList();
@@ -72,7 +72,7 @@ public class RoomDAO implements OmDAO<Ro
        }
 
        public long count(String search) {
-               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Rooms", "r", search, true, true, 
searchFields), Long.class);
+               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Rooms", "r", search, true, true, null, 
searchFields), Long.class);
                return q.getSingleResult();
        }
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
 Sun Oct 21 11:24:59 2012
@@ -172,17 +172,16 @@ public class Usermanagement {
                        sresult.setObjectName(Users.class.getName());
                        sresult.setRecords(usersDao.count(search));
 
-                       String hql = DaoHelper.getSearchQuery("Users", "u", 
search, true, false, UsersDaoImpl.searchFields);
-                       hql += " ";
+                       String sort = null;
                        if (orderby != null && orderby.length() > 0) {
-                               hql += "ORDER BY " + orderby;
+                               sort = orderby;
                        }
-
                        if (asc) {
-                               hql += " ASC ";
+                               sort += " ASC ";
                        } else {
-                               hql += " DESC ";
+                               sort += " DESC ";
                        }
+                       String hql = DaoHelper.getSearchQuery("Users", "u", 
search, true, false, sort, UsersDaoImpl.searchFields);
 
                        log.debug("Show HQL: " + hql);
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationDAO.java
 Sun Oct 21 11:24:59 2012
@@ -57,8 +57,8 @@ public class OrganisationDAO implements 
                return q.getResultList();
        }
 
-       public List<Organisation> get(String search, int start, int count) {
-               TypedQuery<Organisation> q = 
em.createQuery(DaoHelper.getSearchQuery("Organisation", "o", search, true, 
false, searchFields), Organisation.class);
+       public List<Organisation> get(String search, int start, int count, 
String sort) {
+               TypedQuery<Organisation> q = 
em.createQuery(DaoHelper.getSearchQuery("Organisation", "o", search, true, 
false, sort, searchFields), Organisation.class);
                q.setFirstResult(start);
                q.setMaxResults(count);
                return q.getResultList();
@@ -70,7 +70,7 @@ public class OrganisationDAO implements 
        }
 
        public long count(String search) {
-               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Organisation", "o", search, true, 
true, searchFields), Long.class);
+               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Organisation", "o", search, true, 
true, null, searchFields), Long.class);
                return q.getSingleResult();
        }
        

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/OrganisationUserDAO.java
 Sun Oct 21 11:24:59 2012
@@ -49,12 +49,12 @@ public class OrganisationUserDAO impleme
                throw new RuntimeException("Should not be used");
        }
 
-       public List<Organisation_Users> get(String search, int start, int 
count) {
+       public List<Organisation_Users> get(String search, int start, int 
count, String sort) {
                throw new RuntimeException("Should not be used");
        }
        
-       public List<Organisation_Users> get(long orgId, String search, int 
start, int count) {
-               TypedQuery<Organisation_Users> q = 
em.createQuery(DaoHelper.getSearchQuery("Organisation_Users", "ou", search, 
false, false, searchFields), Organisation_Users.class);
+       public List<Organisation_Users> get(long orgId, String search, int 
start, int count, String sort) {
+               TypedQuery<Organisation_Users> q = 
em.createQuery(DaoHelper.getSearchQuery("Organisation_Users", "ou", search, 
false, false, sort, searchFields), Organisation_Users.class);
                q.setFirstResult(start);
                q.setMaxResults(count);
                return q.getResultList();
@@ -87,7 +87,7 @@ public class OrganisationUserDAO impleme
        }
        
        public long count(long orgId, String search) {
-               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Organisation_Users", "ou", search, 
false, true, searchFields), Long.class);
+               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Organisation_Users", "ou", search, 
false, true, null, searchFields), Long.class);
                return q.getSingleResult();
        }
        

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=1400625&r1=1400624&r2=1400625&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
 Sun Oct 21 11:24:59 2012
@@ -113,8 +113,8 @@ public class UsersDaoImpl implements OmD
                return q.getResultList();
        }
 
-       public List<Users> get(String search, int start, int count) {
-               TypedQuery<Users> q = 
em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, false, 
searchFields), Users.class);
+       public List<Users> get(String search, int start, int count, String 
sort) {
+               TypedQuery<Users> q = 
em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, false, 
sort, searchFields), Users.class);
                q.setFirstResult(start);
                q.setMaxResults(count);
                return q.getResultList();
@@ -132,12 +132,12 @@ public class UsersDaoImpl implements OmD
        }
 
        public long count(String search) {
-               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, true, 
searchFields), Long.class);
+               TypedQuery<Long> q = 
em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, true, null, 
searchFields), Long.class);
                return q.getSingleResult();
        }
        
        public List<Users> get(String search) {
-               TypedQuery<Users> q = 
em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, false, 
searchFields), Users.class);
+               TypedQuery<Users> q = 
em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, false, 
null, searchFields), Users.class);
                return q.getResultList();
        }
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
 Sun Oct 21 11:24:59 2012
@@ -22,7 +22,10 @@ import org.apache.commons.lang.StringUti
 
 public class DaoHelper {
 
-       public static String getSearchQuery(String table, String alias, String 
search, boolean filterDeleted, boolean count, String... fields) {
+       public static String getSearchQuery(String table, String alias, String 
search, boolean filterDeleted, boolean count, String sort, String... fields) {
+               return getSearchQuery(table, alias, search, filterDeleted, 
count, null, sort, fields);
+       }
+       public static String getSearchQuery(String table, String alias, String 
search, boolean filterDeleted, boolean count, String additionalWhere, String 
sort, String... fields) {
                StringBuilder sb = new StringBuilder("SELECT ");
                if (count) {
                        sb.append("COUNT(").append(alias).append(")");
@@ -38,12 +41,25 @@ public class DaoHelper {
                StringBuilder where = DaoHelper.getWhereClause(search, alias, 
fields);
                if (where.length() > 0) {
                        if (!whereAdded) {
+                               whereAdded = true;
                                sb.append(" WHERE ");
                        } else {
                                sb.append("AND ");
                        }
                        sb.append(where);
                }
+               if (additionalWhere != null && 
!additionalWhere.trim().isEmpty()) {
+                       if (!whereAdded) {
+                               whereAdded = true;
+                               sb.append(" WHERE ");
+                       } else {
+                               sb.append("AND ");
+                       }
+                       sb.append(additionalWhere);
+               }
+               if (sort != null && !sort.trim().isEmpty()) {
+                       sb.append(" ORDER BY 
").append(alias).append(".").append(sort);
+               }
                return sb.toString();
        }
        

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=1400625&r1=1400624&r2=1400625&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
 Sun Oct 21 11:24:59 2012
@@ -29,7 +29,7 @@
                     <th style="width: 34px"><wicket:ommessage key="275" /></th>
                 </tr>   
             </table>
-            <div class="tableWrapper" style="width: 420px;">
+            <div class="tableWrapper" style="width: 420px; height: 420px;">
                 <table class="adminListTable" style="min-width: 400px; 
max-width: 400px">  
                     <tbody>   
                         <tr wicket:id="userList">

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=1400625&r1=1400624&r2=1400625&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
 Sun Oct 21 11:24:59 2012
@@ -60,9 +60,9 @@ public class GroupUsersPanel extends Pan
                        }
                        
                        public java.util.Iterator<? extends Organisation_Users> 
iterator(long first, long count) {
-                               return (search == null
+                               return (search == null && getSort() == null
                                                ? 
Application.getBean(OrganisationUserDAO.class).get(organisationId, (int)first, 
(int)count)
-                                               : 
Application.getBean(OrganisationUserDAO.class).get(organisationId, search, 
(int)first, (int)count)).iterator();
+                                               : 
Application.getBean(OrganisationUserDAO.class).get(organisationId, search, 
(int)first, (int)count, getSortStr())).iterator();
                        }
                }) {
                        private static final long serialVersionUID = 
8715559628755439596L;

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=1400625&r1=1400624&r2=1400625&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
 Sun Oct 21 11:24:59 2012
@@ -81,9 +81,9 @@ public class LangPanel extends AdminPane
                                        }
                                        
                                        public Iterator<? extends Fieldvalues> 
iterator(long first, long count) {
-                                               return (search == null
+                                               return (search == null && 
getSort() == null
                                                                ? 
Application.getBean(FieldValueDaoImpl.class).get(language.getLanguage_id(), 
(int)first, (int)count)
-                                                               : 
Application.getBean(FieldValueDaoImpl.class).get(language.getLanguage_id(), 
search, (int)first, (int)count)).iterator();
+                                                               : 
Application.getBean(FieldValueDaoImpl.class).get(language.getLanguage_id(), 
search, (int)first, (int)count, getSortStr())).iterator();
                                        }
                                }) {
                        private static final long serialVersionUID = 
8715559628755439596L;

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.html
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.html?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.html
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.html
 Sun Oct 21 11:24:59 2012
@@ -36,10 +36,10 @@
                                <table class="adminListTable">
                                        <thead>
                                                <tr>
-                                                       <th 
class="four_column_layout_column1"><wicket:ommessage key="146" /></th>
-                                                       <th 
class="four_column_layout_column2"><wicket:ommessage key="147" /></th>
-                                                       <th 
class="four_column_layout_column3"><wicket:ommessage key="148" /></th>
-                                                       <th 
class="four_column_layout_column4"><wicket:ommessage key="149" /></th>
+                                                       <th 
class="four_column_layout_column1"><span 
wicket:id="orderById"></span><wicket:ommessage key="146" /></th>
+                                                       <th 
class="four_column_layout_column2"><span 
wicket:id="orderByLogin"></span><wicket:ommessage key="147" /></th>
+                                                       <th 
class="four_column_layout_column3"><span 
wicket:id="orderByFirstName"></span><wicket:ommessage key="148" /></th>
+                                                       <th 
class="four_column_layout_column4"><span 
wicket:id="orderByLastName"></span><wicket:ommessage key="149" /></th>
                                                </tr>   
                                        </thead>
                                </table>

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UsersPanel.java
 Sun Oct 21 11:24:59 2012
@@ -25,7 +25,9 @@ import org.apache.openmeetings.web.app.W
 import org.apache.openmeetings.web.components.admin.AdminPanel;
 import org.apache.openmeetings.web.components.admin.OmDataView;
 import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
+import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmDataProvider;
+import org.apache.openmeetings.web.data.OmOrderByBorder;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -44,11 +46,12 @@ public class UsersPanel extends AdminPan
 
        private UserForm form;
 
+       @SuppressWarnings("unchecked")
        public UsersPanel(String id) {
                super(id);
 
-               OmDataView<Users> dataView = new OmDataView<Users>("userList",
-                               new OmDataProvider<Users>(UsersDaoImpl.class)) {
+               final OmDataView<Users> dataView = new 
OmDataView<Users>("userList"
+                               , new 
OmDataProvider<Users>(UsersDaoImpl.class)) {
                        private static final long serialVersionUID = 
8715559628755439596L;
 
                        @Override
@@ -76,6 +79,12 @@ public class UsersPanel extends AdminPan
                final WebMarkupContainer listContainer = new WebMarkupContainer(
                                "listContainer");
                add(listContainer.add(dataView).setOutputMarkupId(true));
+               DataViewContainer<Users> container = new 
DataViewContainer<Users>(listContainer, dataView);
+               container.setLinks(new OmOrderByBorder<Users>("orderById", 
"user_id", container)
+                               , new OmOrderByBorder<Users>("orderByLogin", 
"login", container)
+                               , new 
OmOrderByBorder<Users>("orderByFirstName", "firstname", container)
+                               , new OmOrderByBorder<Users>("orderByLastName", 
"lastname", container));
+               add(container.orderLinks);
                add(new PagedEntityListPanel("navigator", dataView) {
                        private static final long serialVersionUID = 
5097048616003411362L;
 

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/DataViewContainer.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/DataViewContainer.java?rev=1400625&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/DataViewContainer.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/DataViewContainer.java
 Sun Oct 21 11:24:59 2012
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.data;
+
+import org.apache.openmeetings.persistence.beans.OmEntity;
+import org.apache.openmeetings.web.components.admin.OmDataView;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+
+public class DataViewContainer<T extends OmEntity> {
+       public WebMarkupContainer container;
+       public OmDataView<T> view;
+       public OmOrderByBorder<T>[] orderLinks;
+       
+       public DataViewContainer(WebMarkupContainer container, OmDataView<T> 
view) {
+               this.container = container;
+               this.view = view;
+       }
+       
+       public void setLinks(OmOrderByBorder<T>... orderLinks) {
+               this.orderLinks = orderLinks;
+       }
+}

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmDataProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmDataProvider.java?rev=1400625&r1=1400624&r2=1400625&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmDataProvider.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmDataProvider.java
 Sun Oct 21 11:24:59 2012
@@ -23,11 +23,11 @@ import java.util.Iterator;
 import org.apache.openmeetings.data.OmDAO;
 import org.apache.openmeetings.persistence.beans.OmEntity;
 import org.apache.openmeetings.web.app.Application;
-import org.apache.wicket.markup.repeater.data.IDataProvider;
+import 
org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 
-public class OmDataProvider<T extends OmEntity> implements IDataProvider<T> {
+public class OmDataProvider<T extends OmEntity> extends 
SortableDataProvider<T, String> {
        private static final long serialVersionUID = 4325721185888905204L;
        protected Class<? extends OmDAO<T>> clazz;
        protected String search = null;
@@ -40,10 +40,18 @@ public class OmDataProvider<T extends Om
                // does nothing
        }
 
+       protected String getSortStr() {
+               String result = null;
+               if (getSort() != null) {
+                       result = getSort().getProperty() + " " + 
(getSort().isAscending() ? "ASC" : "DESC");
+               }
+               return result;
+       }
+       
        public Iterator<? extends T> iterator(long first, long count) {
-               return (search == null
+               return (search == null && getSort() == null
                        ? Application.getBean(clazz).get((int)first, (int)count)
-                       : Application.getBean(clazz).get(search, (int)first, 
(int)count)).iterator();
+                       : Application.getBean(clazz).get(search, (int)first, 
(int)count, getSortStr())).iterator();
        }
 
        public long size() {

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmOrderByBorder.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmOrderByBorder.java?rev=1400625&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmOrderByBorder.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmOrderByBorder.java
 Sun Oct 21 11:24:59 2012
@@ -0,0 +1,53 @@
+/*
+ * 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.data;
+
+import org.apache.openmeetings.persistence.beans.OmEntity;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import 
org.apache.wicket.extensions.ajax.markup.html.repeater.data.sort.AjaxFallbackOrderByBorder;
+import 
org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink.CssProvider;
+
+public class OmOrderByBorder<T extends OmEntity> extends 
AjaxFallbackOrderByBorder<String> {
+       private static final long serialVersionUID = -867341109912297431L;
+       private DataViewContainer<T> container;
+       
+       public OmOrderByBorder(final String id, final String property, 
DataViewContainer<T> container) {
+               super(id, property, container.view.getDataProvider(), new 
OmCssProvider());
+               this.container = container;
+               setOutputMarkupId(true);
+       }
+       
+    protected void onSortChanged() {
+       container.view.setCurrentPage(0);
+    }
+
+       @Override
+       protected void onAjaxClick(AjaxRequestTarget target) {
+               target.add(container.container);
+               target.add(container.orderLinks);
+       }
+       
+       static class OmCssProvider extends CssProvider<String> {
+               private static final long serialVersionUID = 60178231250586887L;
+
+               public OmCssProvider() {
+                       super("ui-icon ui-icon-carat-1-n sort-icon", "ui-icon 
ui-icon-carat-1-s sort-icon", "ui-icon ui-icon-carat-2-n-s sort-icon");
+               }
+       }
+}


Reply via email to