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/17 16:47:28 UTC

svn commit: r1399283 - in /incubator/openmeetings/trunk/singlewebapp: ./ .settings/ src/org/apache/openmeetings/data/user/ src/org/apache/openmeetings/data/user/dao/ src/org/apache/openmeetings/persistence/beans/domain/ src/org/apache/openmeetings/pers...

Author: solomax
Date: Wed Oct 17 14:47:27 2012
New Revision: 1399283

URL: http://svn.apache.org/viewvc?rev=1399283&view=rev
Log:
- JRebel eclipse config is partially commited
- Deprecated configurationDaoImpl.getConfKey is partially replaced
- Wicket: Search to the group page is added

Added:
    incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.core.resources.prefs
Modified:
    incubator/openmeetings/trunk/singlewebapp/.project
    incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.wst.common.component
    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/persistence/beans/domain/Organisation_Users.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/DaoHelper.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/math/TimezoneUtil.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java
    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.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/labels/LangPanel.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/data/OmDataProvider.java

Modified: incubator/openmeetings/trunk/singlewebapp/.project
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/.project?rev=1399283&r1=1399282&r2=1399283&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/.project (original)
+++ incubator/openmeetings/trunk/singlewebapp/.project Wed Oct 17 14:47:27 2012
@@ -43,6 +43,16 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.zeroturnaround.eclipse.remoting.remotingBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.zeroturnaround.eclipse.rebelXmlBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.springframework.ide.eclipse.core.springnature</nature>
@@ -52,6 +62,8 @@
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
 		<nature>org.apache.ivyde.eclipse.ivynature</nature>
+		<nature>org.zeroturnaround.eclipse.remoting.remotingNature</nature>
+		<nature>org.zeroturnaround.eclipse.jrebelNature</nature>
 	</natures>
 	<filteredResources>
 		<filter>

Added: incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.core.resources.prefs
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.core.resources.prefs?rev=1399283&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.core.resources.prefs (added)
+++ incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.core.resources.prefs Wed Oct 17 14:47:27 2012
@@ -0,0 +1,14 @@
+#   Licensed 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.
+eclipse.preferences.version=1
+encoding//WebContent/openmeetings/WEB-INF/classes/rebel-remote.xml=UTF-8
+encoding//WebContent/openmeetings/WEB-INF/classes/rebel.xml=UTF-8

Modified: incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.wst.common.component
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.wst.common.component?rev=1399283&r1=1399282&r2=1399283&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.wst.common.component (original)
+++ incubator/openmeetings/trunk/singlewebapp/.settings/org.eclipse.wst.common.component Wed Oct 17 14:47:27 2012
@@ -1,14 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-modules id="moduleCoreId" project-version="1.5.0">
-    <wb-module deploy-name="ROOT">
-        <wb-resource deploy-path="/" source-path="/WebContent"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/client"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/screenviewer"/>
-		<wb-resource deploy-path="/WEB-INF/classes" source-path="/screensharing"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/server"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/WebContent/WEB-INF"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
-        <property name="java-output-path"/>
-        <property name="context-root" value="/"/>
-    </wb-module>
-</project-modules>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   Licensed 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.
+ -->
+<project-modules id="moduleCoreId" project-version="1.5.0">
+    <wb-module deploy-name="ROOT">
+        <wb-resource deploy-path="/" source-path="/WebContent"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/client"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/screenviewer"/>
+		<wb-resource deploy-path="/WEB-INF/classes" source-path="/screensharing"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/server"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/WebContent/WEB-INF"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
+        <wb-resource deploy-path="/WEB-INF/classes" source-path="/WebContent/openmeetings/WEB-INF/classes"/>
+        <property name="java-output-path"/>
+        <property name="context-root" value="/"/>
+    </wb-module>
+</project-modules>

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -62,6 +62,7 @@ import org.apache.openmeetings.remote.re
 import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.sip.xmlrpc.OpenXGHttpClient;
 import org.apache.openmeetings.templates.ResetPasswordTemplate;
+import org.apache.openmeetings.utils.DaoHelper;
 import org.apache.openmeetings.utils.crypt.ManageCryptStyle;
 import org.apache.openmeetings.utils.mail.MailHandler;
 import org.apache.openmeetings.utils.math.CalendarPatterns;
@@ -169,34 +170,10 @@ public class Usermanagement {
 		try {
 			SearchResult<Users> sresult = new SearchResult<Users>();
 			sresult.setObjectName(Users.class.getName());
-			sresult.setRecords(usersDao.getAllUserMax(search));
+			sresult.setRecords(usersDao.count(search));
 
-			String[] searchItems = search.split(" ");
-
-			log.debug("getUserContactsBySearch: " + search);
-			// log.debug("getUserContactsBySearch: "+ userId);
-
-			String hql = "select u from  Users u "
-					+ "WHERE u.deleted = false ";
-
-			hql += "AND ( ";
-			for (int i = 0; i < searchItems.length; i++) {
-				if (i != 0) {
-					hql += " OR ";
-				}
-				hql += "( " + "lower(u.lastname) LIKE '"
-						+ StringUtils.lowerCase("%" + searchItems[i] + "%")
-						+ "' " + "OR lower(u.firstname) LIKE '"
-						+ StringUtils.lowerCase("%" + searchItems[i] + "%")
-						+ "' " + "OR lower(u.login) LIKE '"
-						+ StringUtils.lowerCase("%" + searchItems[i] + "%")
-						+ "' " + "OR lower(u.adresses.email) LIKE '"
-						+ StringUtils.lowerCase("%" + searchItems[i] + "%")
-						+ "' " + ") ";
-
-			}
-
-			hql += " ) ";
+			String hql = DaoHelper.getSearchQuery("Users", "u", search, true, false, UsersDaoImpl.searchFields);
+			hql += " ";
 			if (orderby != null && orderby.length() > 0) {
 				hql += "ORDER BY " + orderby;
 			}
@@ -1486,10 +1463,7 @@ public class Usermanagement {
 
 		String email = us.getAdresses().getEmail();
 
-		Long default_lang_id = Long.valueOf(
-				configurationDaoImpl.getConfKey("default_lang_id")
-						.getConf_value())
-				.longValue();
+		Long default_lang_id = configurationDaoImpl.getConfValue("default_lang_id", Long.class, "1");
 
 		String template = resetPasswordTemplate.getResetPasswordTemplate(
 				reset_link, default_lang_id);

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -28,10 +28,12 @@ import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.data.OmDAO;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
+import org.apache.openmeetings.utils.DaoHelper;
 import org.springframework.transaction.annotation.Transactional;
 
 @Transactional
 public class OrganisationDAO implements OmDAO<Organisation> {
+	public final static String[] searchFields = {"name"};
 	@PersistenceContext
 	private EntityManager em;
 
@@ -56,8 +58,10 @@ public class OrganisationDAO implements 
 	}
 
 	public List<Organisation> get(String search, int start, int count) {
-		// TODO Auto-generated method stub
-		return null;
+		TypedQuery<Organisation> q = em.createQuery(DaoHelper.getSearchQuery("Organisation", "o", search, true, false, searchFields), Organisation.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		return q.getResultList();
 	}
 	
 	public long count() {
@@ -66,8 +70,8 @@ public class OrganisationDAO implements 
 	}
 
 	public long count(String search) {
-		// TODO Auto-generated method stub
-		return 0;
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("Organisation", "o", search, true, true, searchFields), Long.class);
+		return q.getSingleResult();
 	}
 	
 	public void update(Organisation entity, long userId) {

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -27,6 +27,7 @@ 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.apache.openmeetings.utils.DaoHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -36,6 +37,7 @@ public class OrganisationUserDAO impleme
 	private EntityManager em;
 	@Autowired
 	private UsersDaoImpl usersDao;
+	public final static String[] searchFields = {"user.lastname", "user.firstname", "user.login", "user.adresses.email"};
 
 	public Organisation_Users get(long id) {
 		TypedQuery<Organisation_Users> q = em.createNamedQuery("getOrganisationUsersById", Organisation_Users.class);
@@ -52,8 +54,10 @@ public class OrganisationUserDAO impleme
 	}
 	
 	public List<Organisation_Users> get(long orgId, String search, int start, int count) {
-		//TODO autogenerated
-		return null;
+		TypedQuery<Organisation_Users> q = em.createQuery(DaoHelper.getSearchQuery("Organisation_Users", "ou", search, false, false, searchFields), Organisation_Users.class);
+		q.setFirstResult(start);
+		q.setMaxResults(count);
+		return q.getResultList();
 	}
 	
 	public List<Organisation_Users> get(long orgId, int start, int count) {
@@ -83,8 +87,8 @@ public class OrganisationUserDAO impleme
 	}
 	
 	public long count(long orgId, String search) {
-		// TODO Auto-generated method stub
-		return 0;
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("Organisation_Users", "ou", search, false, true, searchFields), Long.class);
+		return q.getSingleResult();
 	}
 	
 	public long count(long orgId) {

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -55,6 +55,8 @@ public class UsersDaoImpl implements OmD
 	private static final Logger log = Red5LoggerFactory.getLogger(
 			UsersDaoImpl.class, OpenmeetingsVariables.webAppRootKey);
 
+	public final static String[] searchFields = {"lastname", "firstname", "login", "adresses.email"};
+
 	@PersistenceContext
 	private EntityManager em;
 
@@ -105,21 +107,14 @@ public class UsersDaoImpl implements OmD
 	 * @see org.apache.openmeetings.data.OmDAO#get(int, int)
 	 */
 	public List<Users> get(int first, int count) {
-		TypedQuery<Users> q = em.createNamedQuery("getNondeletedUsers",
-				Users.class);
+		TypedQuery<Users> q = em.createNamedQuery("getNondeletedUsers", Users.class);
 		q.setFirstResult(first);
 		q.setMaxResults(count);
 		return q.getResultList();
 	}
 
 	public List<Users> get(String search, int start, int count) {
-		//FIXME copy/paste
-		StringBuilder sb = new StringBuilder("SELECT u FROM Users u WHERE u.deleted = false ");
-		StringBuilder where = DaoHelper.getWhereClause(search, "u", "lastname", "firstname", "login", "adresses.email");
-		if (where.length() > 0) {
-			sb.append("AND ").append(where);
-		}
-		TypedQuery<Users> q = em.createQuery(sb.toString(), Users.class);
+		TypedQuery<Users> q = em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, false, searchFields), Users.class);
 		q.setFirstResult(start);
 		q.setMaxResults(count);
 		return q.getResultList();
@@ -132,51 +127,17 @@ public class UsersDaoImpl implements OmD
 	 */
 	public long count() {
 		// get all users
-		TypedQuery<Long> q = em.createQuery(
-				"select count(u) from Users u where u.deleted = false",
-				Long.class);
+		TypedQuery<Long> q = em.createNamedQuery("countNondeletedUsers", Long.class);
 		return q.getSingleResult();
 	}
 
 	public long count(String search) {
-		//FIXME copy/paste
-		StringBuilder sb = new StringBuilder("SELECT COUNT(u) FROM Users u WHERE u.deleted = false ");
-		StringBuilder where = DaoHelper.getWhereClause(search, "u", "lastname", "firstname", "login", "adresses.email");
-		if (where.length() > 0) {
-			sb.append("AND ").append(where);
-		}
-		TypedQuery<Long> q = em.createQuery(sb.toString(), Long.class);
+		TypedQuery<Long> q = em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, true, searchFields), Long.class);
 		return q.getSingleResult();
 	}
 	
-	// FIXME need to be generalized with other copy/pasted methods
 	public List<Users> get(String search) {
-		String[] searchItems = search.split(" ");
-		StringBuilder hql = new StringBuilder(
-				"SELECT u FROM Users u WHERE u.deleted = false ");
-
-		hql.append("AND ( ");
-		for (int i = 0; i < searchItems.length; ++i) {
-			if (searchItems[i].isEmpty()) {
-				continue;
-			}
-			if (i != 0) {
-				hql.append(" OR ");
-			}
-			StringBuilder placeholder = new StringBuilder();
-			placeholder.append("%")
-					.append(StringUtils.lowerCase(searchItems[i])).append("%");
-
-			hql.append("(lower(u.lastname) LIKE '").append(placeholder)
-					.append("' OR lower(u.firstname) LIKE '")
-					.append(placeholder).append("' OR lower(u.login) LIKE '")
-					.append(placeholder)
-					.append("' OR lower(u.adresses.email) LIKE '")
-					.append(placeholder).append("' ) ");
-		}
-
-		hql.append(" ) ");
-		TypedQuery<Users> q = em.createQuery(hql.toString(), Users.class);
+		TypedQuery<Users> q = em.createQuery(DaoHelper.getSearchQuery("Users", "u", search, true, false, searchFields), Users.class);
 		return q.getResultList();
 	}
 
@@ -286,52 +247,6 @@ public class UsersDaoImpl implements OmD
 		return null;
 	}
 
-	public Long getAllUserMax(String search) {
-		try {
-
-			String[] searchItems = search.split(" ");
-
-			log.debug("getUserContactsBySearch: " + search);
-			// log.debug("getUserContactsBySearch: "+ userId);
-
-			String hql = "select count(u.user_id) from  Users u "
-					+ "WHERE u.deleted = false ";
-
-			hql += "AND ( ";
-			for (int i = 0; i < searchItems.length; i++) {
-				if (i != 0) {
-					hql += " OR ";
-				}
-				hql += "( " + "lower(u.lastname) LIKE '"
-						+ StringUtils.lowerCase("%" + searchItems[i] + "%")
-						+ "' " + "OR lower(u.firstname) LIKE '"
-						+ StringUtils.lowerCase("%" + searchItems[i] + "%")
-						+ "' " + "OR lower(u.login) LIKE '"
-						+ StringUtils.lowerCase("%" + searchItems[i] + "%")
-						+ "' " + "OR lower(u.adresses.email) LIKE '"
-						+ StringUtils.lowerCase("%" + searchItems[i] + "%")
-						+ "' " + ") ";
-
-			}
-			hql += " )";
-
-			log.debug("Show HQL: " + hql);
-
-			TypedQuery<Long> query = em.createQuery(hql, Long.class);
-
-			// log.debug("id: "+folderId);
-			List<Long> ll = query.getResultList();
-
-			// log.error((Long)ll.get(0));
-			Long i = ll.get(0);
-
-			return i;
-		} catch (Exception ex2) {
-			log.error("[getAllUserMax]: ", ex2);
-		}
-		return null;
-	}
-
 	/**
 	 * check for duplicates
 	 * 

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -34,6 +34,7 @@ import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
 import org.apache.openmeetings.persistence.beans.OmEntity;
+import org.apache.openmeetings.persistence.beans.user.Users;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
@@ -64,6 +65,10 @@ public class Organisation_Users implemen
 	@Column(name = "user_id")
 	private Long user_id;
 
+	@ManyToOne(fetch = FetchType.EAGER)
+	@JoinColumn(name = "user_id", insertable = true, updatable = true)
+	private Users user;
+	
 	@Column(name = "starttime")
 	private Date starttime;
 	
@@ -173,4 +178,12 @@ public class Organisation_Users implemen
 		}
 		return true;
 	}
+
+	public Users getUser() {
+		return user;
+	}
+
+	public void setUser(Users user) {
+		this.user = user;
+	}
 }

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java?rev=1399283&r1=1399282&r2=1399283&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/Users.java Wed Oct 17 14:47:27 2012
@@ -79,6 +79,7 @@ import org.simpleframework.xml.Root;
 				+ "SET u.password = :password " //
 				+ "WHERE u.user_id = :userId"), //
 		@NamedQuery(name = "getNondeletedUsers", query = "SELECT u FROM Users u WHERE u.deleted = false"),
+		@NamedQuery(name = "countNondeletedUsers", query = "SELECT COUNT(u) FROM Users u WHERE u.deleted = false"),
 		@NamedQuery(name = "getUsersByOrganisationId", query = "SELECT u FROM Users u WHERE u.deleted = false AND u.organisation_users.organisation.organisation_id = :organisation_id") })
 @Table(name = "users")
 @Root(name = "user")

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -22,6 +22,31 @@ 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) {
+		StringBuilder sb = new StringBuilder("SELECT ");
+		if (count) {
+			sb.append("COUNT(").append(alias).append(")");
+		} else {
+			sb.append(alias);
+		}
+		sb.append(" FROM ").append(table).append(" ").append(alias);
+		boolean whereAdded = false;
+		if (filterDeleted) {
+			whereAdded = true;
+			sb.append(" WHERE ").append(alias).append(".deleted = false ");
+		}
+		StringBuilder where = DaoHelper.getWhereClause(search, alias, fields);
+		if (where.length() > 0) {
+			if (!whereAdded) {
+				sb.append(" WHERE ");
+			} else {
+				sb.append("AND ");
+			}
+			sb.append(where);
+		}
+		return sb.toString();
+	}
+	
 	public static StringBuilder getWhereClause(String search, String alias, String... fields) {
 		StringBuilder sb = new StringBuilder();
 		getWhereClause(sb, search, alias, fields);

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/math/TimezoneUtil.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/math/TimezoneUtil.java?rev=1399283&r1=1399282&r2=1399283&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/math/TimezoneUtil.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/math/TimezoneUtil.java Wed Oct 17 14:47:27 2012
@@ -25,7 +25,6 @@ import java.util.TimeZone;
 import org.apache.openmeetings.OpenmeetingsVariables;
 import org.apache.openmeetings.data.basic.dao.ConfigurationDaoImpl;
 import org.apache.openmeetings.data.basic.dao.OmTimeZoneDaoImpl;
-import org.apache.openmeetings.persistence.beans.basic.Configuration;
 import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
 import org.apache.openmeetings.persistence.beans.user.Users;
 import org.red5.logging.Red5LoggerFactory;
@@ -64,20 +63,15 @@ public class TimezoneUtil {
 
 		// if user has not time zone get one from the server configuration
 
-		Configuration conf = configurationDaoImpl.getConfKey("default.timezone");
+		String defaultTzName = configurationDaoImpl.getConfValue("default.timezone", String.class, "Europe/Berlin");
 
-		if (conf != null) {
+		OmTimeZone omTimeZone = omTimeZoneDaoImpl.getOmTimeZone(defaultTzName);
 
-			OmTimeZone omTimeZone = omTimeZoneDaoImpl.getOmTimeZone(conf
-					.getConf_value());
-
-			TimeZone timeZoneByOmTimeZone = TimeZone.getTimeZone(omTimeZone
-					.getIcal());
-
-			if (timeZoneByOmTimeZone != null) {
-				return timeZoneByOmTimeZone;
-			}
+		TimeZone timeZoneByOmTimeZone = TimeZone.getTimeZone(omTimeZone
+				.getIcal());
 
+		if (timeZoneByOmTimeZone != null) {
+			return timeZoneByOmTimeZone;
 		}
 
 		// If everything fails take the servers default one
@@ -108,20 +102,15 @@ public class TimezoneUtil {
 
 		// if user has not time zone get one from the server configuration
 
-		Configuration conf = configurationDaoImpl.getConfKey("default.timezone");
-
-		if (conf != null) {
+		String defaultTzName = configurationDaoImpl.getConfValue("default.timezone", String.class, "Europe/Berlin");
 
-			OmTimeZone omTimeZoneDefault = omTimeZoneDaoImpl.getOmTimeZone(conf
-					.getConf_value());
+		OmTimeZone omTimeZoneDefault = omTimeZoneDaoImpl.getOmTimeZone(defaultTzName);
 
-			TimeZone timeZoneByOmTimeZone = TimeZone
-					.getTimeZone(omTimeZoneDefault.getIcal());
-
-			if (timeZoneByOmTimeZone != null) {
-				return timeZoneByOmTimeZone;
-			}
+		TimeZone timeZoneByOmTimeZone = TimeZone
+				.getTimeZone(omTimeZoneDefault.getIcal());
 
+		if (timeZoneByOmTimeZone != null) {
+			return timeZoneByOmTimeZone;
 		}
 
 		// If everything fails take the servers default one
@@ -148,20 +137,15 @@ public class TimezoneUtil {
 
 		// if user has not time zone get one from the server configuration
 
-		Configuration conf = configurationDaoImpl.getConfKey("default.timezone");
-
-		if (conf != null) {
+		String defaultTzName = configurationDaoImpl.getConfValue("default.timezone", String.class, "Europe/Berlin");
 
-			OmTimeZone omTimeZoneDefault = omTimeZoneDaoImpl.getOmTimeZone(conf
-					.getConf_value());
+		OmTimeZone omTimeZoneDefault = omTimeZoneDaoImpl.getOmTimeZone(defaultTzName);
 
-			TimeZone timeZoneByOmTimeZone = TimeZone
-					.getTimeZone(omTimeZoneDefault.getIcal());
-
-			if (timeZoneByOmTimeZone != null) {
-				return timeZoneByOmTimeZone;
-			}
+		TimeZone timeZoneByOmTimeZone = TimeZone
+				.getTimeZone(omTimeZoneDefault.getIcal());
 
+		if (timeZoneByOmTimeZone != null) {
+			return timeZoneByOmTimeZone;
 		}
 
 		// If everything fails take the servers default one

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java?rev=1399283&r1=1399282&r2=1399283&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java Wed Oct 17 14:47:27 2012
@@ -25,7 +25,6 @@ import java.util.List;
 
 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;
 import org.apache.openmeetings.persistence.beans.user.Users;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.web.components.admin.groups;
 
 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;
@@ -36,7 +35,6 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.markup.repeater.Item;
-import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.model.Model;
 
 public class GroupUsersPanel extends Panel {
@@ -56,11 +54,15 @@ public class GroupUsersPanel extends Pan
 			private static final long serialVersionUID = 1L;
 
 			public long size() {
-				return Application.getBean(OrganisationUserDAO.class).count(organisationId);
+				return search == null
+						? Application.getBean(OrganisationUserDAO.class).count(organisationId)
+						: Application.getBean(OrganisationUserDAO.class).count(organisationId, search);
 			}
 			
 			public java.util.Iterator<? extends Organisation_Users> iterator(long first, long count) {
-				return Application.getBean(OrganisationUserDAO.class).get(organisationId, (int)first, (int)count).iterator();
+				return (search == null
+						? Application.getBean(OrganisationUserDAO.class).get(organisationId, (int)first, (int)count)
+						: Application.getBean(OrganisationUserDAO.class).get(organisationId, search, (int)first, (int)count)).iterator();
 			}
 		}) {
 			private static final long serialVersionUID = 8715559628755439596L;
@@ -68,8 +70,8 @@ public class GroupUsersPanel extends Pan
 			@Override
 			protected void populateItem(Item<Organisation_Users> item) {
 				final Organisation_Users orgUser = item.getModelObject();
-				if (orgUser.getUser_id() != null) {
-					Users u = Application.getBean(UsersDaoImpl.class).get(orgUser.getUser_id());
+				Users u = orgUser.getUser();
+				if (u != null) {
 					item.add(new Label("label", Model.of(getUser(u))));
 				} else {
 					item.add(new Label("label", Model.of("")));

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -30,7 +30,6 @@ import org.apache.wicket.ajax.AjaxReques
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
-import org.apache.wicket.markup.repeater.data.DataView;
 
 public class GroupsPanel extends AdminPanel {
 	private static final long serialVersionUID = -5170400556006464830L;

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -36,7 +36,6 @@ import org.apache.wicket.ajax.AjaxReques
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
-import org.apache.wicket.markup.repeater.data.DataView;
 
 /**
  * Language Editor, add/insert/update {@link Fieldlanguagesvalues} and

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=1399283&r1=1399282&r2=1399283&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 Wed Oct 17 14:47:27 2012
@@ -30,7 +30,7 @@ import org.apache.wicket.model.IModel;
 public class OmDataProvider<T extends OmEntity> implements IDataProvider<T> {
 	private static final long serialVersionUID = 4325721185888905204L;
 	protected Class<? extends OmDAO<T>> clazz;
-	private String search = null;
+	protected String search = null;
 	
 	public OmDataProvider(Class<? extends OmDAO<T>> c) {
 		this.clazz = c;