1 31 32 package org.opencms.workplace.demos.list; 33 34 import org.opencms.file.CmsGroup; 35 import org.opencms.file.CmsUser; 36 import org.opencms.i18n.CmsMessageContainer; 37 import org.opencms.jsp.CmsJspActionElement; 38 import org.opencms.main.CmsException; 39 import org.opencms.main.CmsRuntimeException; 40 import org.opencms.util.CmsUUID; 41 import org.opencms.workplace.CmsDialog; 42 import org.opencms.workplace.list.A_CmsListDialog; 43 import org.opencms.workplace.list.CmsListColumnAlignEnum; 44 import org.opencms.workplace.list.CmsListColumnDefinition; 45 import org.opencms.workplace.list.CmsListDateMacroFormatter; 46 import org.opencms.workplace.list.CmsListDefaultAction; 47 import org.opencms.workplace.list.CmsListDirectAction; 48 import org.opencms.workplace.list.CmsListItem; 49 import org.opencms.workplace.list.CmsListItemDetails; 50 import org.opencms.workplace.list.CmsListItemDetailsFormatter; 51 import org.opencms.workplace.list.CmsListMetadata; 52 import org.opencms.workplace.list.CmsListMultiAction; 53 import org.opencms.workplace.list.CmsListPrintIAction; 54 import org.opencms.workplace.list.CmsListSearchAction; 55 import org.opencms.workplace.list.I_CmsListFormatter; 56 import org.opencms.workplace.tools.accounts.Messages; 57 58 import java.util.ArrayList ; 59 import java.util.Date ; 60 import java.util.HashMap ; 61 import java.util.Iterator ; 62 import java.util.List ; 63 import java.util.Locale ; 64 import java.util.Map ; 65 66 import javax.servlet.http.HttpServletRequest ; 67 import javax.servlet.http.HttpServletResponse ; 68 import javax.servlet.jsp.PageContext ; 69 70 79 public class CmsListDemo8 extends A_CmsListDialog { 80 81 82 public static final String LIST_ACTION_DELETE = "ad"; 83 84 85 public static final String LIST_COLUMN_ACTIVATE = "ca"; 86 87 88 public static final String LIST_COLUMN_DELETE = "cd"; 89 90 91 public static final String LIST_COLUMN_EMAIL = "cm"; 92 93 94 public static final String LIST_COLUMN_LASTLOGIN = "cl"; 95 96 97 public static final String LIST_COLUMN_LOGIN = "ci"; 98 99 100 public static final String LIST_COLUMN_NAME = "cn"; 101 102 103 public static final String LIST_DEFACTION_EDIT = "de"; 104 105 106 public static final String LIST_DETAIL_GROUPS = "dg"; 107 108 109 public static final String LIST_ID = "lsu1"; 110 111 112 public static final String LIST_MACTION_ACTIVATE = "ma"; 113 114 115 private static final String PARAM_USERID = "userid"; 116 117 122 public CmsListDemo8(CmsJspActionElement jsp) { 123 124 super(jsp, LIST_ID, Messages.get().container(Messages.GUI_USERS_LIST_NAME_0), null, null, null); 125 } 126 127 134 public CmsListDemo8(PageContext context, HttpServletRequest req, HttpServletResponse res) { 135 136 this(new CmsJspActionElement(context, req, res)); 137 } 138 139 142 public void executeListMultiActions() throws CmsRuntimeException { 143 144 if (getParamListAction().equals(LIST_MACTION_ACTIVATE)) { 145 try { 147 Iterator itItems = getSelectedItems().iterator(); 148 while (itItems.hasNext()) { 149 CmsListItem listItem = (CmsListItem)itItems.next(); 150 String usrName = listItem.get(LIST_COLUMN_LOGIN).toString(); 151 CmsUser user = getCms().readUser(usrName); 152 if (!user.isEnabled()) { 153 user.setEnabled(true); 154 } 156 } 157 } catch (CmsException e) { 158 throw new CmsRuntimeException(Messages.get().container(Messages.ERR_ACTIVATE_SELECTED_USERS_0), e); 159 } 160 } else { 162 throwListUnsupportedActionException(); 163 } 164 } 165 166 169 public void executeListSingleActions() { 170 171 CmsListItem item = getSelectedItem(); 172 CmsUUID userId = new CmsUUID(item.getId()); 173 174 Map params = new HashMap (); 175 params.put(PARAM_USERID, userId); 176 params.put(CmsDialog.PARAM_ACTION, CmsDialog.DIALOG_INITIAL); 178 if (getParamListAction().equals(LIST_DEFACTION_EDIT)) { 179 } else if (LIST_ACTION_DELETE.equals(getParamListAction())) { 182 getList().removeItem(userId.toString(), getLocale()); 186 } else { 187 throwListUnsupportedActionException(); 188 } 189 listSave(); 190 } 191 192 195 protected void fillDetails(String detailId) { 196 197 List users = getList().getAllContent(); 199 Iterator itUsers = users.iterator(); 200 while (itUsers.hasNext()) { 201 CmsListItem item = (CmsListItem)itUsers.next(); 202 String userName = item.get(LIST_COLUMN_LOGIN).toString(); 203 StringBuffer html = new StringBuffer (512); 204 try { 205 if (detailId.equals(LIST_DETAIL_GROUPS)) { 206 Iterator itGroups = getCms().getGroupsOfUser(userName).iterator(); 208 while (itGroups.hasNext()) { 209 html.append(((CmsGroup)itGroups.next()).getName()); 210 if (itGroups.hasNext()) { 211 html.append("<br>"); 212 } 213 html.append("\n"); 214 } 215 } else { 216 continue; 217 } 218 } catch (Exception e) { 219 } 221 item.set(detailId, html.toString()); 222 } 223 } 224 225 228 protected List getListItems() throws CmsException { 229 230 List ret = new ArrayList (); 231 List users = getCms().getUsers(CmsUser.USER_TYPE_SYSTEMUSER); 233 Iterator itUsers = users.iterator(); 234 while (itUsers.hasNext()) { 235 CmsUser user = (CmsUser)itUsers.next(); 236 CmsListItem item = getList().newItem(user.getId().toString()); 237 item.set(LIST_COLUMN_ACTIVATE, Boolean.valueOf(user.isEnabled())); 238 item.set(LIST_COLUMN_LOGIN, user.getName()); 239 item.set(LIST_COLUMN_NAME, user.getFullName()); 240 item.set(LIST_COLUMN_EMAIL, user.getEmail()); 241 item.set(LIST_COLUMN_LASTLOGIN, new Date (user.getLastlogin())); 242 ret.add(item); 243 } 244 return ret; 245 } 246 247 250 protected void initMessages() { 251 252 addMessages(Messages.get().getBundleName()); 254 addMessages(org.opencms.workplace.demos.list.Messages.get().getBundleName()); 255 addMessages(org.opencms.workplace.demos.Messages.get().getBundleName()); 256 super.initMessages(); 258 } 259 260 263 protected void setColumns(CmsListMetadata metadata) { 264 265 CmsListColumnDefinition actCol = new CmsListColumnDefinition(LIST_COLUMN_ACTIVATE); 267 actCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_ACTIVATE_0)); 268 actCol.setWidth("30"); 269 actCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 270 actCol.setSorteable(true); 271 I_CmsListFormatter actFormatter = new I_CmsListFormatter() { 272 273 276 public String format(Object data, Locale locale) { 277 278 if (data instanceof Boolean ) { 279 Boolean val = (Boolean )data; 280 if (val.booleanValue()) { 281 return "<img SRC='" + getResourceUri("list/active.png") + "'>"; 282 } 283 } 284 return "<img SRC='" + getResourceUri("list/inactive.png") + "'>"; 285 } 286 287 }; 288 actCol.setFormatter(actFormatter); 289 metadata.addColumn(actCol); 290 291 CmsListColumnDefinition deleteCol = new CmsListColumnDefinition(LIST_COLUMN_DELETE); 293 deleteCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_DELETE_0)); 294 deleteCol.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_COLS_DELETE_HELP_0)); 295 deleteCol.setWidth("20"); 296 deleteCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 297 deleteCol.setSorteable(false); 298 CmsListDirectAction deleteAction = new CmsListDirectAction(LIST_ACTION_DELETE); 300 deleteAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_ACTION_DELETE_NAME_0)); 301 deleteAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_ACTION_DELETE_HELP_0)); 302 deleteAction.setConfirmationMessage(new CmsMessageContainer(null, "Do you want to delete the selected user?")); 303 deleteAction.setIconPath(ICON_DELETE); 304 deleteCol.addDirectAction(deleteAction); 305 metadata.addColumn(deleteCol); 306 307 CmsListColumnDefinition loginCol = new CmsListColumnDefinition(LIST_COLUMN_LOGIN); 309 loginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LOGIN_0)); 310 loginCol.setWidth("20%"); 311 loginCol.setSorteable(true); 312 CmsListDefaultAction defEditAction = new CmsListDefaultAction(LIST_DEFACTION_EDIT); 314 defEditAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_EDIT_NAME_0)); 315 defEditAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_EDIT_HELP_0)); 316 loginCol.addDefaultAction(defEditAction); 317 metadata.addColumn(loginCol); 318 319 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME); 321 nameCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_USERNAME_0)); 322 nameCol.setWidth("30%"); 323 nameCol.setSorteable(true); 324 metadata.addColumn(nameCol); 325 326 CmsListColumnDefinition emailCol = new CmsListColumnDefinition(LIST_COLUMN_EMAIL); 328 emailCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_EMAIL_0)); 329 emailCol.setWidth("30%"); 330 emailCol.setSorteable(true); 331 metadata.addColumn(emailCol); 332 333 CmsListColumnDefinition lastLoginCol = new CmsListColumnDefinition(LIST_COLUMN_LASTLOGIN); 335 lastLoginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LASTLOGIN_0)); 336 lastLoginCol.setWidth("20%"); 337 lastLoginCol.setSorteable(true); 338 lastLoginCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter()); 339 metadata.addColumn(lastLoginCol); 340 } 341 342 345 protected void setIndependentActions(CmsListMetadata metadata) { 346 347 CmsListItemDetails userGroupsDetails = new CmsListItemDetails(LIST_DETAIL_GROUPS); 349 userGroupsDetails.setAtColumn(LIST_COLUMN_LOGIN); 350 userGroupsDetails.setVisible(false); 351 userGroupsDetails.setShowActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_NAME_0)); 352 userGroupsDetails.setShowActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_HELP_0)); 353 userGroupsDetails.setHideActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_NAME_0)); 354 userGroupsDetails.setHideActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_HELP_0)); 355 userGroupsDetails.setName(Messages.get().container(Messages.GUI_USERS_DETAIL_GROUPS_NAME_0)); 356 userGroupsDetails.setFormatter(new CmsListItemDetailsFormatter(Messages.get().container( 357 Messages.GUI_USERS_DETAIL_GROUPS_NAME_0))); 358 metadata.addItemDetails(userGroupsDetails); 359 360 } 361 362 365 protected void setMultiActions(CmsListMetadata metadata) { 366 367 CmsListMultiAction activateUser = new CmsListMultiAction(LIST_MACTION_ACTIVATE); 369 activateUser.setName(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ACTIVATE_NAME_0)); 370 activateUser.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ACTIVATE_HELP_0)); 371 activateUser.setConfirmationMessage(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ACTIVATE_CONF_0)); 372 activateUser.setIconPath(ICON_MULTI_ACTIVATE); 373 metadata.addMultiAction(activateUser); 374 375 CmsListSearchAction searchAction = new CmsListSearchAction(metadata.getColumnDefinition(LIST_COLUMN_LOGIN)); 377 searchAction.addColumn(metadata.getColumnDefinition(LIST_COLUMN_EMAIL)); 378 metadata.setSearchAction(searchAction); 379 380 metadata.getIndependentAction(CmsListPrintIAction.LIST_ACTION_ID).setVisible(false); 382 } 383 384 } | Popular Tags |