--- /dev/null
+/**\r
+ * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.\r
+ *\r
+ * This library is free software; you can redistribute it and/or modify it under\r
+ * the terms of the GNU Lesser General Public License as published by the Free\r
+ * Software Foundation; either version 2.1 of the License, or (at your option)\r
+ * any later version.\r
+ *\r
+ * This library is distributed in the hope that it will be useful, but WITHOUT\r
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more\r
+ * details.\r
+ */\r
+\r
+package com.liferay.portlet.useradmin.search;\r
+\r
+import com.liferay.portal.kernel.dao.search.SearchContainer;\r
+import com.liferay.portal.kernel.log.Log;\r
+import com.liferay.portal.kernel.log.LogFactoryUtil;\r
+import com.liferay.portal.kernel.util.JavaConstants;\r
+import com.liferay.portal.kernel.util.OrderByComparator;\r
+import com.liferay.portal.kernel.util.ParamUtil;\r
+import com.liferay.portal.kernel.util.Validator;\r
+import com.liferay.portal.kernel.workflow.WorkflowConstants;\r
+import com.liferay.portal.model.User;\r
+import com.liferay.portal.util.PortletKeys;\r
+import com.liferay.portlet.PortalPreferences;\r
+import com.liferay.portlet.PortletPreferencesFactoryUtil;\r
+import com.liferay.portlet.usersadmin.util.UsersAdminUtil;\r
+\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
+\r
+import javax.portlet.PortletConfig;\r
+import javax.portlet.PortletRequest;\r
+import javax.portlet.PortletURL;\r
+\r
+/**\r
+ * @author Brian Wing Shun Chan\r
+ */\r
+public class UserSearch extends SearchContainer<User> {\r
+\r
+ static List<String> headerNames = new ArrayList<String>();\r
+ static Map<String, String> orderableHeaders = new HashMap<String, String>();\r
+\r
+ static {\r
+ headerNames.add("first-name");\r
+ headerNames.add("last-name");\r
+ headerNames.add("screen-name");\r
+ //headerNames.add("email-address");\r
+ headerNames.add("job-title");\r
+ headerNames.add("organizations");\r
+\r
+ orderableHeaders.put("first-name", "first-name");\r
+ orderableHeaders.put("last-name", "last-name");\r
+ orderableHeaders.put("screen-name", "screen-name");\r
+ //orderableHeaders.put("email-address", "email-address");\r
+ orderableHeaders.put("job-title", "job-title");\r
+ }\r
+\r
+ public static final String EMPTY_RESULTS_MESSAGE = "no-users-were-found";\r
+\r
+ public UserSearch(PortletRequest portletRequest, PortletURL iteratorURL) {\r
+ this(portletRequest, DEFAULT_CUR_PARAM, iteratorURL);\r
+ }\r
+\r
+ public UserSearch(\r
+ PortletRequest portletRequest, String curParam,\r
+ PortletURL iteratorURL) {\r
+\r
+ super(\r
+ portletRequest, new UserDisplayTerms(portletRequest),\r
+ new UserSearchTerms(portletRequest), curParam, DEFAULT_DELTA,\r
+ iteratorURL, headerNames, EMPTY_RESULTS_MESSAGE);\r
+\r
+ PortletConfig portletConfig =\r
+ (PortletConfig)portletRequest.getAttribute(\r
+ JavaConstants.JAVAX_PORTLET_CONFIG);\r
+\r
+ UserDisplayTerms displayTerms = (UserDisplayTerms)getDisplayTerms();\r
+ UserSearchTerms searchTerms = (UserSearchTerms)getSearchTerms();\r
+\r
+ String portletName = portletConfig.getPortletName();\r
+\r
+ if (!portletName.equals(PortletKeys.USERS_ADMIN)) {\r
+ displayTerms.setStatus(WorkflowConstants.STATUS_APPROVED);\r
+ searchTerms.setStatus(WorkflowConstants.STATUS_APPROVED);\r
+ }\r
+\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.STATUS, String.valueOf(displayTerms.getStatus()));\r
+\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.EMAIL_ADDRESS, displayTerms.getEmailAddress());\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.FIRST_NAME, displayTerms.getFirstName());\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.LAST_NAME, displayTerms.getLastName());\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.MIDDLE_NAME, displayTerms.getMiddleName());\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.ORGANIZATION_ID,\r
+ String.valueOf(displayTerms.getOrganizationId()));\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.ROLE_ID, String.valueOf(displayTerms.getRoleId()));\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.SCREEN_NAME, displayTerms.getScreenName());\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.USER_GROUP_ID,\r
+ String.valueOf(displayTerms.getUserGroupId()));\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.COLLEGE_ID, String.valueOf(displayTerms.getCollegeId()));\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.CLASSE_ID, String.valueOf(displayTerms.getClasseId()));\r
+ iteratorURL.setParameter(\r
+ UserDisplayTerms.ENSEIGNEMENT_ID, String.valueOf(displayTerms.getEnseignementId()));\r
+\r
+ try {\r
+ PortalPreferences preferences =\r
+ PortletPreferencesFactoryUtil.getPortalPreferences(\r
+ portletRequest);\r
+\r
+ String orderByCol = ParamUtil.getString(\r
+ portletRequest, "orderByCol");\r
+ String orderByType = ParamUtil.getString(\r
+ portletRequest, "orderByType");\r
+\r
+ if (Validator.isNotNull(orderByCol) &&\r
+ Validator.isNotNull(orderByType)) {\r
+\r
+ preferences.setValue(\r
+ PortletKeys.USERS_ADMIN, "users-order-by-col", orderByCol);\r
+ preferences.setValue(\r
+ PortletKeys.USERS_ADMIN, "users-order-by-type",\r
+ orderByType);\r
+ }\r
+ else {\r
+ orderByCol = preferences.getValue(\r
+ PortletKeys.USERS_ADMIN, "users-order-by-col", "last-name");\r
+ orderByType = preferences.getValue(\r
+ PortletKeys.USERS_ADMIN, "users-order-by-type", "asc");\r
+ }\r
+\r
+ OrderByComparator orderByComparator =\r
+ UsersAdminUtil.getUserOrderByComparator(\r
+ orderByCol, orderByType);\r
+\r
+ setOrderableHeaders(orderableHeaders);\r
+ setOrderByCol(orderByCol);\r
+ setOrderByType(orderByType);\r
+ setOrderByComparator(orderByComparator);\r
+ }\r
+ catch (Exception e) {\r
+ _log.error(e);\r
+ }\r
+ }\r
+\r
+ private static Log _log = LogFactoryUtil.getLog(UserSearch.class);\r
+\r
+}
\ No newline at end of file