1 31 32 package org.opencms.workplace.commons; 33 34 import org.opencms.file.CmsUser; 35 import org.opencms.jsp.CmsJspActionElement; 36 import org.opencms.main.CmsException; 37 import org.opencms.main.CmsRuntimeException; 38 import org.opencms.security.CmsPrincipal; 39 import org.opencms.util.CmsStringUtil; 40 import org.opencms.workplace.list.A_CmsListDefaultJsAction; 41 import org.opencms.workplace.list.A_CmsListDialog; 42 import org.opencms.workplace.list.CmsListColumnAlignEnum; 43 import org.opencms.workplace.list.CmsListColumnDefinition; 44 import org.opencms.workplace.list.CmsListDefaultAction; 45 import org.opencms.workplace.list.CmsListDirectAction; 46 import org.opencms.workplace.list.CmsListItem; 47 import org.opencms.workplace.list.CmsListMetadata; 48 import org.opencms.workplace.list.CmsListOrderEnum; 49 import org.opencms.workplace.tools.CmsToolMacroResolver; 50 51 import java.util.ArrayList ; 52 import java.util.Iterator ; 53 import java.util.List ; 54 55 import javax.servlet.http.HttpServletRequest ; 56 import javax.servlet.http.HttpServletResponse ; 57 import javax.servlet.jsp.PageContext ; 58 59 68 public class CmsUserSelectionList extends A_CmsListDialog { 69 70 71 public static final String LIST_ACTION_ICON = "ai"; 72 73 74 public static final String LIST_ACTION_SELECT = "js"; 75 76 77 public static final String LIST_COLUMN_FULLNAME = "cf"; 78 79 80 public static final String LIST_COLUMN_ICON = "ci"; 81 82 83 public static final String LIST_COLUMN_LOGIN = "cn"; 84 85 86 public static final String LIST_ID = "lus"; 87 88 89 private String m_paramGroup; 90 91 92 private String m_paramUsertype; 93 94 95 private String m_paramFlags; 96 97 102 public CmsUserSelectionList(CmsJspActionElement jsp) { 103 104 super( 105 jsp, 106 LIST_ID, 107 Messages.get().container(Messages.GUI_USERSELECTION_LIST_NAME_0), 108 LIST_COLUMN_LOGIN, 109 CmsListOrderEnum.ORDER_ASCENDING, 110 LIST_COLUMN_LOGIN); 111 } 112 113 120 public CmsUserSelectionList(PageContext context, HttpServletRequest req, HttpServletResponse res) { 121 122 this(new CmsJspActionElement(context, req, res)); 123 } 124 125 128 public String dialogTitle() { 129 130 StringBuffer html = new StringBuffer (512); 132 html.append("<div class='screenTitle'>\n"); 133 html.append("\t<table width='100%' cellspacing='0'>\n"); 134 html.append("\t\t<tr>\n"); 135 html.append("\t\t\t<td>\n"); 136 String param = ""; 137 if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(getParamGroup())) { 138 param = Messages.get().getBundle(getLocale()).key(Messages.GUI_USERSELECTION_GROUP_BLOCK_1, getParamGroup()); 139 } else if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(getParamUsertype())) { 140 if (Integer.parseInt(getParamUsertype()) == CmsUser.USER_TYPE_WEBUSER) { 141 param = Messages.get().getBundle(getLocale()).key(Messages.GUI_USERSELECTION_TYPE_WEB_0); 142 } else { 143 param = Messages.get().getBundle(getLocale()).key(Messages.GUI_USERSELECTION_TYPE_SYSTEM_0); 144 } 145 } 146 html.append(key(Messages.GUI_USERSELECTION_INTRO_TITLE_1, new Object [] {param})); 147 html.append("\n\t\t\t</td>"); 148 html.append("\t\t</tr>\n"); 149 html.append("\t</table>\n"); 150 html.append("</div>\n"); 151 return CmsToolMacroResolver.resolveMacros(html.toString(), this); 152 } 153 154 157 public void executeListMultiActions() throws CmsRuntimeException { 158 159 throwListUnsupportedActionException(); 160 } 161 162 165 public void executeListSingleActions() throws CmsRuntimeException { 166 167 throwListUnsupportedActionException(); 168 } 169 170 175 public String getParamGroup() { 176 177 return m_paramGroup; 178 } 179 180 185 public String getParamUsertype() { 186 187 return m_paramUsertype; 188 } 189 190 195 public String getParamFlags() { 196 197 return m_paramFlags; 198 } 199 200 205 public void setParamGroup(String groupName) { 206 207 m_paramGroup = groupName; 208 } 209 210 215 public void setParamUsertype(String userType) { 216 217 m_paramUsertype = userType; 218 } 219 220 225 public void setParamFlags(String flags) { 226 227 m_paramFlags = flags; 228 } 229 230 233 protected void fillDetails(String detailId) { 234 235 } 237 238 241 protected List getListItems() throws CmsException { 242 243 List ret = new ArrayList (); 244 245 List users = getUsers(); 247 Iterator itUsers = users.iterator(); 248 while (itUsers.hasNext()) { 249 CmsUser user = (CmsUser)itUsers.next(); 250 CmsListItem item = getList().newItem(user.getId().toString()); 251 item.set(LIST_COLUMN_LOGIN, user.getName()); 252 item.set(LIST_COLUMN_FULLNAME, user.getFullName()); 253 ret.add(item); 254 } 255 256 return ret; 257 } 258 259 266 protected List getUsers() throws CmsException { 267 268 List ret = new ArrayList (); 269 if (getParamGroup() != null) { 270 ret.addAll(getCms().getUsersOfGroup(getParamGroup())); 271 } else if (getParamUsertype() == null) { 272 ret.addAll(getCms().getUsers()); 273 } else { 274 ret.addAll(getCms().getUsers(Integer.parseInt(getParamUsertype()))); 275 } 276 if (getParamFlags() != null) { 277 int flags = Integer.parseInt(getParamFlags()); 278 return CmsPrincipal.filterFlag(ret, flags); 279 } 280 return ret; 281 } 282 283 286 protected void setColumns(CmsListMetadata metadata) { 287 288 CmsListColumnDefinition iconCol = new CmsListColumnDefinition(LIST_COLUMN_ICON); 290 iconCol.setName(Messages.get().container(Messages.GUI_USERSELECTION_LIST_COLS_ICON_0)); 291 iconCol.setHelpText(Messages.get().container(Messages.GUI_USERSELECTION_LIST_COLS_ICON_HELP_0)); 292 iconCol.setWidth("20"); 293 iconCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 294 iconCol.setSorteable(false); 295 CmsListDirectAction iconAction = new CmsListDirectAction(LIST_ACTION_ICON); 297 iconAction.setName(Messages.get().container(Messages.GUI_USERSELECTION_LIST_ICON_NAME_0)); 298 iconAction.setHelpText(Messages.get().container(Messages.GUI_USERSELECTION_LIST_ICON_HELP_0)); 299 iconAction.setIconPath("buttons/user.png"); 300 iconAction.setEnabled(false); 301 iconCol.addDirectAction(iconAction); 302 metadata.addColumn(iconCol); 304 305 CmsListColumnDefinition loginCol = new CmsListColumnDefinition(LIST_COLUMN_LOGIN); 307 loginCol.setName(Messages.get().container(Messages.GUI_USERSELECTION_LIST_COLS_LOGIN_0)); 308 loginCol.setWidth("35%"); 309 CmsListDefaultAction selectAction = new A_CmsListDefaultJsAction(LIST_ACTION_SELECT) { 310 311 314 public String jsCode() { 315 316 return "window.opener.setUserFormValue('" 317 + getItem().get(LIST_COLUMN_LOGIN) 318 + "'); window.opener.focus(); window.close();"; 319 } 320 }; 321 selectAction.setName(Messages.get().container(Messages.GUI_USERSELECTION_LIST_ACTION_SELECT_NAME_0)); 322 selectAction.setHelpText(Messages.get().container(Messages.GUI_USERSELECTION_LIST_ACTION_SELECT_HELP_0)); 323 loginCol.addDefaultAction(selectAction); 324 metadata.addColumn(loginCol); 326 327 CmsListColumnDefinition fullnameCol = new CmsListColumnDefinition(LIST_COLUMN_FULLNAME); 329 fullnameCol.setName(Messages.get().container(Messages.GUI_USERSELECTION_LIST_COLS_FULLNAME_0)); 330 fullnameCol.setWidth("65%"); 331 fullnameCol.setTextWrapping(true); 332 metadata.addColumn(fullnameCol); 334 } 335 336 339 protected void setIndependentActions(CmsListMetadata metadata) { 340 341 } 343 344 347 protected void setMultiActions(CmsListMetadata metadata) { 348 349 } 351 352 355 protected void validateParamaters() throws Exception { 356 357 try { 358 getCms().readGroup(getParamGroup()).getName(); 359 } catch (Exception e) { 360 setParamGroup(null); 361 } 362 try { 363 Integer.valueOf(getParamUsertype()); 364 } catch (Throwable e) { 365 setParamUsertype(null); 366 } 367 try { 368 Integer.valueOf(getParamFlags()); 369 } catch (Throwable e) { 370 setParamFlags(null); 371 } 372 } 373 } | Popular Tags |