You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/10/21 13:25:00 UTC
svn commit: r1400625 - in /incubator/openmeetings/trunk/singlewebapp:
WebContent/openmeetings/css/ src/org/apache/openmeetings/data/
src/org/apache/openmeetings/data/basic/
src/org/apache/openmeetings/data/basic/dao/
src/org/apache/openmeetings/data/co...
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");
+ }
+ }
+}