1 31 32 package org.opencms.workplace.tools.workplace.broadcast; 33 34 import org.opencms.jsp.CmsJspActionElement; 35 import org.opencms.main.CmsSessionInfo; 36 import org.opencms.main.OpenCms; 37 import org.opencms.workplace.CmsDialog; 38 import org.opencms.workplace.list.A_CmsListDialog; 39 import org.opencms.workplace.list.CmsListColumnAlignEnum; 40 import org.opencms.workplace.list.CmsListColumnDefinition; 41 import org.opencms.workplace.list.CmsListDateMacroFormatter; 42 import org.opencms.workplace.list.CmsListDefaultAction; 43 import org.opencms.workplace.list.CmsListDirectAction; 44 import org.opencms.workplace.list.CmsListItem; 45 import org.opencms.workplace.list.CmsListItemActionIconComparator; 46 import org.opencms.workplace.list.CmsListMetadata; 47 import org.opencms.workplace.list.CmsListMultiAction; 48 import org.opencms.workplace.list.CmsListOrderEnum; 49 import org.opencms.workplace.list.CmsListTimeIntervalFormatter; 50 51 import java.io.IOException ; 52 import java.util.ArrayList ; 53 import java.util.Date ; 54 import java.util.HashMap ; 55 import java.util.Iterator ; 56 import java.util.List ; 57 import java.util.Map ; 58 59 import javax.servlet.ServletException ; 60 import javax.servlet.http.HttpServletRequest ; 61 import javax.servlet.http.HttpServletResponse ; 62 import javax.servlet.jsp.PageContext ; 63 64 73 public class CmsSessionsList extends A_CmsListDialog { 74 75 76 public static final String LIST_ACTION_MESSAGE = "am"; 77 78 79 public static final String LIST_ACTION_PENDING_DISABLED = "apd"; 80 81 82 public static final String LIST_ACTION_PENDING_ENABLED = "ape"; 83 84 85 public static final String LIST_COLUMN_CREATION = "cc"; 86 87 88 public static final String LIST_COLUMN_EMAIL = "ce"; 89 90 91 public static final String LIST_COLUMN_INACTIVE = "ci"; 92 93 94 public static final String LIST_COLUMN_MESSAGE = "cm"; 95 96 97 public static final String LIST_COLUMN_PENDING = "cp"; 98 99 100 public static final String LIST_COLUMN_PROJECT = "cj"; 101 102 103 public static final String LIST_COLUMN_SITE = "cs"; 104 105 106 public static final String LIST_COLUMN_USER = "cu"; 107 108 109 public static final String LIST_DEFACTION_EMAIL = "de"; 110 111 112 public static final String LIST_DEFACTION_MESSAGE = "dm"; 113 114 115 public static final String LIST_ID = "ls"; 116 117 118 public static final String LIST_MACTION_EMAIL = "me"; 119 120 121 public static final String LIST_MACTION_MESSAGE = "mm"; 122 123 124 public static final String PATH_BUTTONS = "tools/workplace/buttons/"; 125 126 131 public CmsSessionsList(CmsJspActionElement jsp) { 132 133 super( 134 jsp, 135 LIST_ID, 136 Messages.get().container(Messages.GUI_SESSIONS_LIST_NAME_0), 137 LIST_COLUMN_USER, 138 CmsListOrderEnum.ORDER_ASCENDING, 139 LIST_COLUMN_USER); 140 } 141 142 149 public CmsSessionsList(PageContext context, HttpServletRequest req, HttpServletResponse res) { 150 151 this(new CmsJspActionElement(context, req, res)); 152 } 153 154 157 public void executeListMultiActions() throws IOException , ServletException { 158 159 Map params = new HashMap (); 160 params.put(A_CmsMessageDialog.PARAM_SESSIONIDS, getParamSelItems()); 161 params.put(CmsDialog.PARAM_ACTION, CmsDialog.DIALOG_INITIAL); 163 164 if (getParamListAction().equals(LIST_MACTION_MESSAGE)) { 165 getToolManager().jspForwardTool(this, "/workplace/broadcast/message", params); 168 } else if (getParamListAction().equals(LIST_MACTION_EMAIL)) { 169 getToolManager().jspForwardTool(this, "/workplace/broadcast/email", params); 172 } else { 173 throwListUnsupportedActionException(); 174 } 175 } 176 177 180 public void executeListSingleActions() throws IOException , ServletException { 181 182 Map params = new HashMap (); 183 params.put(A_CmsMessageDialog.PARAM_SESSIONIDS, getSelectedItem().getId()); 184 params.put(CmsDialog.PARAM_ACTION, CmsDialog.DIALOG_INITIAL); 186 187 if (getParamListAction().equals(LIST_DEFACTION_EMAIL)) { 188 getToolManager().jspForwardTool(this, "/workplace/broadcast/email", params); 190 } else if (getParamListAction().equals(LIST_ACTION_MESSAGE) 191 || getParamListAction().equals(LIST_DEFACTION_MESSAGE)) { 192 getToolManager().jspForwardTool(this, "/workplace/broadcast/message", params); 193 } else { 194 throwListUnsupportedActionException(); 195 } 196 listSave(); 197 } 198 199 202 protected void fillDetails(String detailId) { 203 204 } 206 207 210 protected List getListItems() { 211 212 List ret = new ArrayList (); 213 List sessions = OpenCms.getSessionManager().getSessionInfos(); 215 Iterator itSessions = sessions.iterator(); 216 while (itSessions.hasNext()) { 217 CmsSessionInfo session = (CmsSessionInfo)itSessions.next(); 218 CmsListItem item = getList().newItem(session.getSessionId()); 219 item.set(LIST_COLUMN_USER, session.getUser().getFullName()); 220 item.set(LIST_COLUMN_EMAIL, session.getUser().getEmail()); 221 item.set(LIST_COLUMN_CREATION, new Date (session.getTimeCreated())); 222 item.set(LIST_COLUMN_INACTIVE, new Long (System.currentTimeMillis() - session.getTimeUpdated())); 223 try { 224 item.set(LIST_COLUMN_PROJECT, getCms().readProject(session.getProject()).getName()); 225 } catch (Exception e) { 226 } 228 item.set(LIST_COLUMN_SITE, session.getSiteRoot()); 229 ret.add(item); 230 } 231 232 return ret; 233 } 234 235 238 protected void initMessages() { 239 240 addMessages(Messages.get().getBundleName()); 242 addMessages(org.opencms.workplace.tools.workplace.Messages.get().getBundleName()); 243 super.initMessages(); 245 } 246 247 250 protected void setColumns(CmsListMetadata metadata) { 251 252 CmsListColumnDefinition messageCol = new CmsListColumnDefinition(LIST_COLUMN_MESSAGE); 254 messageCol.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_MESSAGE_0)); 255 messageCol.setHelpText(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_MESSAGE_HELP_0)); 256 messageCol.setWidth("20"); 257 messageCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 258 messageCol.setSorteable(false); 259 CmsListDirectAction messageAction = new CmsListDirectAction(LIST_ACTION_MESSAGE); 261 messageAction.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_ACTION_MESSAGE_NAME_0)); 262 messageAction.setHelpText(Messages.get().container(Messages.GUI_SESSIONS_LIST_ACTION_MESSAGE_HELP_0)); 263 messageAction.setIconPath(PATH_BUTTONS + "send_message.png"); 264 messageCol.addDirectAction(messageAction); 265 metadata.addColumn(messageCol); 267 268 CmsListColumnDefinition pendingCol = new CmsListColumnDefinition(LIST_COLUMN_PENDING); 270 pendingCol.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_PENDING_0)); 271 pendingCol.setWidth("20"); 272 pendingCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 273 pendingCol.setListItemComparator(new CmsListItemActionIconComparator()); 274 CmsListDirectAction pendingAction = new CmsListDirectAction(LIST_ACTION_PENDING_ENABLED) { 276 277 280 public boolean isVisible() { 281 282 if (getItem() != null) { 283 return !OpenCms.getSessionManager().getBroadcastQueue(getItem().getId()).isEmpty(); 284 } 285 return super.isVisible(); 286 } 287 }; 288 pendingAction.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_ACTION_PENDING_NAME_0)); 289 pendingAction.setHelpText(Messages.get().container(Messages.GUI_SESSIONS_LIST_ACTION_PENDING_HELP_0)); 290 pendingAction.setIconPath(PATH_BUTTONS + "message_pending.png"); 291 pendingAction.setEnabled(false); 292 pendingCol.addDirectAction(pendingAction); 293 294 CmsListDirectAction notPendingAction = new CmsListDirectAction(LIST_ACTION_PENDING_DISABLED) { 296 297 300 public boolean isVisible() { 301 302 if (getItem() != null) { 303 return OpenCms.getSessionManager().getBroadcastQueue(getItem().getId()).isEmpty(); 304 } 305 return super.isVisible(); 306 } 307 }; 308 notPendingAction.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_ACTION_NOTPENDING_NAME_0)); 309 notPendingAction.setHelpText(Messages.get().container(Messages.GUI_SESSIONS_LIST_ACTION_NOTPENDING_HELP_0)); 310 notPendingAction.setIconPath(PATH_BUTTONS + "message_notpending.png"); 311 notPendingAction.setEnabled(false); 312 pendingCol.addDirectAction(notPendingAction); 313 314 metadata.addColumn(pendingCol); 316 317 CmsListColumnDefinition userCol = new CmsListColumnDefinition(LIST_COLUMN_USER); 319 userCol.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_USER_0)); 320 userCol.setWidth("20%"); 321 CmsListDefaultAction messageEditAction = new CmsListDefaultAction(LIST_DEFACTION_MESSAGE); 323 messageEditAction.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_ACTION_MESSAGE_NAME_0)); 324 messageEditAction.setHelpText(Messages.get().container(Messages.GUI_SESSIONS_LIST_ACTION_MESSAGE_HELP_0)); 325 userCol.addDefaultAction(messageEditAction); 326 metadata.addColumn(userCol); 328 329 CmsListColumnDefinition emailCol = new CmsListColumnDefinition(LIST_COLUMN_EMAIL); 331 emailCol.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_EMAIL_0)); 332 emailCol.setWidth("30%"); 333 CmsListDefaultAction emailEditAction = new CmsListDefaultAction(LIST_DEFACTION_EMAIL); 335 emailEditAction.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_DEFACTION_EMAIL_NAME_0)); 336 emailEditAction.setHelpText(Messages.get().container(Messages.GUI_SESSIONS_LIST_DEFACTION_EMAIL_HELP_0)); 337 emailCol.addDefaultAction(emailEditAction); 338 metadata.addColumn(emailCol); 339 340 CmsListColumnDefinition creationCol = new CmsListColumnDefinition(LIST_COLUMN_CREATION); 342 creationCol.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_CREATION_0)); 343 creationCol.setWidth("16%"); 344 creationCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter()); 345 metadata.addColumn(creationCol); 346 347 CmsListColumnDefinition inactiveCol = new CmsListColumnDefinition(LIST_COLUMN_INACTIVE); 349 inactiveCol.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_INACTIVE_0)); 350 inactiveCol.setWidth("10%"); 351 inactiveCol.setFormatter(new CmsListTimeIntervalFormatter()); 352 metadata.addColumn(inactiveCol); 353 354 CmsListColumnDefinition projectCol = new CmsListColumnDefinition(LIST_COLUMN_PROJECT); 356 projectCol.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_PROJECT_0)); 357 projectCol.setWidth("12%"); 358 metadata.addColumn(projectCol); 359 360 CmsListColumnDefinition siteCol = new CmsListColumnDefinition(LIST_COLUMN_SITE); 362 siteCol.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_COLS_SITE_0)); 363 siteCol.setWidth("12%"); 364 metadata.addColumn(siteCol); 365 } 366 367 370 protected void setIndependentActions(CmsListMetadata metadata) { 371 372 } 374 375 378 protected void setMultiActions(CmsListMetadata metadata) { 379 380 CmsListMultiAction messageMultiAction = new CmsListMultiAction(LIST_MACTION_MESSAGE); 382 messageMultiAction.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_MACTION_MESSAGE_NAME_0)); 383 messageMultiAction.setHelpText(Messages.get().container(Messages.GUI_SESSIONS_LIST_MACTION_MESSAGE_HELP_0)); 384 messageMultiAction.setConfirmationMessage(Messages.get().container( 385 Messages.GUI_SESSIONS_LIST_MACTION_MESSAGE_CONF_0)); 386 messageMultiAction.setIconPath(PATH_BUTTONS + "multi_send_message.png"); 387 metadata.addMultiAction(messageMultiAction); 388 389 CmsListMultiAction emailMultiAction = new CmsListMultiAction(LIST_MACTION_EMAIL); 391 emailMultiAction.setName(Messages.get().container(Messages.GUI_SESSIONS_LIST_MACTION_EMAIL_NAME_0)); 392 emailMultiAction.setHelpText(Messages.get().container(Messages.GUI_SESSIONS_LIST_MACTION_EMAIL_HELP_0)); 393 emailMultiAction.setConfirmationMessage(Messages.get().container( 394 Messages.GUI_SESSIONS_LIST_MACTION_EMAIL_CONF_0)); 395 emailMultiAction.setIconPath(PATH_BUTTONS + "multi_send_email.png"); 396 metadata.addMultiAction(emailMultiAction); 397 } 398 399 } 400 | Popular Tags |