2 * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
\r
4 * This library is free software; you can redistribute it and/or modify it under
\r
5 * the terms of the GNU Lesser General Public License as published by the Free
\r
6 * Software Foundation; either version 2.1 of the License, or (at your option)
\r
9 * This library is distributed in the hope that it will be useful, but WITHOUT
\r
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
\r
11 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
\r
15 package com.liferay.portlet.useradmin.search;
\r
17 import com.liferay.portal.kernel.dao.search.SearchContainer;
\r
18 import com.liferay.portal.kernel.log.Log;
\r
19 import com.liferay.portal.kernel.log.LogFactoryUtil;
\r
20 import com.liferay.portal.kernel.util.JavaConstants;
\r
21 import com.liferay.portal.kernel.util.OrderByComparator;
\r
22 import com.liferay.portal.kernel.util.ParamUtil;
\r
23 import com.liferay.portal.kernel.util.Validator;
\r
24 import com.liferay.portal.kernel.workflow.WorkflowConstants;
\r
25 import com.liferay.portal.model.User;
\r
26 import com.liferay.portal.util.PortletKeys;
\r
27 import com.liferay.portlet.PortalPreferences;
\r
28 import com.liferay.portlet.PortletPreferencesFactoryUtil;
\r
29 import com.liferay.portlet.usersadmin.util.UsersAdminUtil;
\r
31 import java.util.ArrayList;
\r
32 import java.util.HashMap;
\r
33 import java.util.List;
\r
34 import java.util.Map;
\r
36 import javax.portlet.PortletConfig;
\r
37 import javax.portlet.PortletRequest;
\r
38 import javax.portlet.PortletURL;
\r
41 * @author Brian Wing Shun Chan
\r
43 public class UserSearch extends SearchContainer<User> {
\r
45 static List<String> headerNames = new ArrayList<String>();
\r
46 static Map<String, String> orderableHeaders = new HashMap<String, String>();
\r
49 headerNames.add("first-name");
\r
50 headerNames.add("last-name");
\r
51 headerNames.add("screen-name");
\r
52 //headerNames.add("email-address");
\r
53 headerNames.add("job-title");
\r
54 headerNames.add("organizations");
\r
56 orderableHeaders.put("first-name", "first-name");
\r
57 orderableHeaders.put("last-name", "last-name");
\r
58 orderableHeaders.put("screen-name", "screen-name");
\r
59 //orderableHeaders.put("email-address", "email-address");
\r
60 orderableHeaders.put("job-title", "job-title");
\r
63 public static final String EMPTY_RESULTS_MESSAGE = "no-users-were-found";
\r
65 public UserSearch(PortletRequest portletRequest, PortletURL iteratorURL) {
\r
66 this(portletRequest, DEFAULT_CUR_PARAM, iteratorURL);
\r
70 PortletRequest portletRequest, String curParam,
\r
71 PortletURL iteratorURL) {
\r
74 portletRequest, new UserDisplayTerms(portletRequest),
\r
75 new UserSearchTerms(portletRequest), curParam, DEFAULT_DELTA,
\r
76 iteratorURL, headerNames, EMPTY_RESULTS_MESSAGE);
\r
78 PortletConfig portletConfig =
\r
79 (PortletConfig)portletRequest.getAttribute(
\r
80 JavaConstants.JAVAX_PORTLET_CONFIG);
\r
82 UserDisplayTerms displayTerms = (UserDisplayTerms)getDisplayTerms();
\r
83 UserSearchTerms searchTerms = (UserSearchTerms)getSearchTerms();
\r
85 String portletName = portletConfig.getPortletName();
\r
87 if (!portletName.equals(PortletKeys.USERS_ADMIN)) {
\r
88 displayTerms.setStatus(WorkflowConstants.STATUS_APPROVED);
\r
89 searchTerms.setStatus(WorkflowConstants.STATUS_APPROVED);
\r
92 iteratorURL.setParameter(
\r
93 UserDisplayTerms.STATUS, String.valueOf(displayTerms.getStatus()));
\r
95 iteratorURL.setParameter(
\r
96 UserDisplayTerms.EMAIL_ADDRESS, displayTerms.getEmailAddress());
\r
97 iteratorURL.setParameter(
\r
98 UserDisplayTerms.FIRST_NAME, displayTerms.getFirstName());
\r
99 iteratorURL.setParameter(
\r
100 UserDisplayTerms.LAST_NAME, displayTerms.getLastName());
\r
101 iteratorURL.setParameter(
\r
102 UserDisplayTerms.MIDDLE_NAME, displayTerms.getMiddleName());
\r
103 iteratorURL.setParameter(
\r
104 UserDisplayTerms.ORGANIZATION_ID,
\r
105 String.valueOf(displayTerms.getOrganizationId()));
\r
106 iteratorURL.setParameter(
\r
107 UserDisplayTerms.ROLE_ID, String.valueOf(displayTerms.getRoleId()));
\r
108 iteratorURL.setParameter(
\r
109 UserDisplayTerms.SCREEN_NAME, displayTerms.getScreenName());
\r
110 iteratorURL.setParameter(
\r
111 UserDisplayTerms.USER_GROUP_ID,
\r
112 String.valueOf(displayTerms.getUserGroupId()));
\r
113 iteratorURL.setParameter(
\r
114 UserDisplayTerms.COLLEGE_ID, String.valueOf(displayTerms.getCollegeId()));
\r
115 iteratorURL.setParameter(
\r
116 UserDisplayTerms.CLASSE_ID, String.valueOf(displayTerms.getClasseId()));
\r
117 iteratorURL.setParameter(
\r
118 UserDisplayTerms.ENSEIGNEMENT_ID, String.valueOf(displayTerms.getEnseignementId()));
\r
121 PortalPreferences preferences =
\r
122 PortletPreferencesFactoryUtil.getPortalPreferences(
\r
125 String orderByCol = ParamUtil.getString(
\r
126 portletRequest, "orderByCol");
\r
127 String orderByType = ParamUtil.getString(
\r
128 portletRequest, "orderByType");
\r
130 if (Validator.isNotNull(orderByCol) &&
\r
131 Validator.isNotNull(orderByType)) {
\r
133 preferences.setValue(
\r
134 PortletKeys.USERS_ADMIN, "users-order-by-col", orderByCol);
\r
135 preferences.setValue(
\r
136 PortletKeys.USERS_ADMIN, "users-order-by-type",
\r
140 orderByCol = preferences.getValue(
\r
141 PortletKeys.USERS_ADMIN, "users-order-by-col", "last-name");
\r
142 orderByType = preferences.getValue(
\r
143 PortletKeys.USERS_ADMIN, "users-order-by-type", "asc");
\r
146 OrderByComparator orderByComparator =
\r
147 UsersAdminUtil.getUserOrderByComparator(
\r
148 orderByCol, orderByType);
\r
150 setOrderableHeaders(orderableHeaders);
\r
151 setOrderByCol(orderByCol);
\r
152 setOrderByType(orderByType);
\r
153 setOrderByComparator(orderByComparator);
\r
155 catch (Exception e) {
\r
160 private static Log _log = LogFactoryUtil.getLog(UserSearch.class);
\r