1 28 29 30 package com.opencms.workplace; 31 32 import org.opencms.file.CmsGroup; 33 import org.opencms.file.CmsObject; 34 import org.opencms.file.CmsUser; 35 import org.opencms.i18n.CmsEncoder; 36 import org.opencms.main.CmsException; 37 import org.opencms.main.CmsLog; 38 import org.opencms.util.CmsDateUtil; 39 import org.opencms.workflow.CmsTask; 40 import org.opencms.workflow.CmsTaskService; 41 42 import com.opencms.core.I_CmsSession; 43 import com.opencms.legacy.CmsXmlTemplateLoader; 44 import com.opencms.template.A_CmsXmlContent; 45 46 import java.text.DateFormat ; 47 import java.util.Date ; 48 import java.util.Hashtable ; 49 import java.util.List ; 50 import java.util.Locale ; 51 import java.util.Vector ; 52 53 63 64 public class CmsTaskContentDialogPriority extends CmsWorkplaceDefault { 65 66 67 70 private final static String C_ALL_ROLES = "___all"; 71 72 73 76 private static String C_ROLE = null; 77 78 79 82 private static String C_ROLE_1 = null; 83 84 85 88 private static String C_ROLE_2 = null; 89 90 91 94 private static String C_USER_1 = null; 95 96 97 100 private static String C_USER_2 = null; 101 102 103 106 private static String C_USER_3 = null; 107 108 109 112 private static String C_USER_4 = null; 113 114 115 118 private static String C_USER_5 = null; 119 120 131 132 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 133 Hashtable parameters, String templateSelector) throws CmsException { 134 if(CmsLog.getLog(this).isDebugEnabled() && C_DEBUG) { 135 CmsLog.getLog(this).debug("Getting content of element " + ((elementName==null)?"<root>":elementName)); 136 CmsLog.getLog(this).debug("Template file is: " + templateFile); 137 CmsLog.getLog(this).debug("Selected template section is: " + ((templateSelector==null)?"<default>":templateSelector)); 138 } 139 String taskName = ""; 140 String taskDescription = ""; 141 String due = ""; 142 String paraAcceptation = ""; 143 String paraAll = ""; 144 String paraCompletion = ""; 145 String paraDelivery = ""; 146 String userIdxString = ""; 147 String groupIdxString = ""; 148 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 149 CmsXmlWpTemplateFile xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, 150 templateFile, elementName, parameters, templateSelector); 151 152 if(C_ROLE == null) { 154 155 initConstants(xmlTemplateDocument); 157 } 158 try { 159 String taskidstr = (String )parameters.get("taskid"); 160 int taskid; 161 if(taskidstr == null || taskidstr == "") { 162 Integer sessionTaskid = (Integer )session.getValue("taskid"); 163 taskid = sessionTaskid.intValue(); 164 } 165 else { 166 Integer taskidInt = new Integer (taskidstr); 167 taskid = taskidInt.intValue(); 168 session.putValue("taskid", taskidInt); 169 } 170 CmsTaskService taskService = cms.getTaskService(); 171 CmsTask task = taskService.readTask(taskid); 172 taskName = task.getName(); 173 taskDescription = CmsTaskAction.getDescription(cms, task.getId()); 174 paraAcceptation = taskService.getTaskPar(task.getId(), CmsWorkplaceDefault.C_TASKPARA_ACCEPTATION); 175 paraAll = taskService.getTaskPar(task.getId(), CmsWorkplaceDefault.C_TASKPARA_ALL); 176 paraCompletion = taskService.getTaskPar(task.getId(), CmsWorkplaceDefault.C_TASKPARA_COMPLETION); 177 paraDelivery = taskService.getTaskPar(task.getId(), CmsWorkplaceDefault.C_TASKPARA_DELIVERY); 178 due = CmsDateUtil.getDate(new Date (task.getTimeOut().getTime()), DateFormat.MEDIUM, new Locale ("de")); 181 182 String username = taskService.readAgent(task).getName(); 185 String groupname = taskService.readGroup(task).getName(); 186 int userindex = 0; 187 int groupindex = 0; 188 List groups = cms.getGroups(); 189 List users = cms.getUsersOfGroup(groupname); 190 int n = 0; 191 for(int z = 0;z < groups.size();z++) { 192 CmsGroup group = (CmsGroup)groups.get(z); 193 if(group.getRole()) { 194 n++; 195 if(group.getName().equals(groupname)) { 196 groupindex = n; 197 } 198 } 199 } 200 for(int z = 0;z < users.size();z++) { 201 if(((CmsUser)users.get(z)).getName().equals(username)) { 202 userindex = z + 1; 203 } 204 } 205 userIdxString = (new Integer (userindex)).toString(); 206 groupIdxString = (new Integer (groupindex)).toString(); 207 } 208 catch(Exception exc) { 209 210 211 } 213 xmlTemplateDocument.setData("task", CmsEncoder.escape(taskName, 214 cms.getRequestContext().getEncoding())); 215 xmlTemplateDocument.setData("description", CmsEncoder.escape(taskDescription, 216 cms.getRequestContext().getEncoding())); 217 xmlTemplateDocument.setData("due", due); 218 xmlTemplateDocument.setData(CmsWorkplaceDefault.C_TASKPARA_ACCEPTATION, paraAcceptation); 219 xmlTemplateDocument.setData(CmsWorkplaceDefault.C_TASKPARA_ALL, paraAll); 220 xmlTemplateDocument.setData(CmsWorkplaceDefault.C_TASKPARA_COMPLETION, paraCompletion); 221 xmlTemplateDocument.setData(CmsWorkplaceDefault.C_TASKPARA_DELIVERY, paraDelivery); 222 xmlTemplateDocument.setData("groupindex", groupIdxString); 223 xmlTemplateDocument.setData("userindex", userIdxString); 224 225 return startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector); 227 } 228 229 243 244 public Integer getPriority(CmsObject cms, CmsXmlLanguageFile lang, Vector names, Vector values, 245 Hashtable parameters) throws CmsException { 246 247 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 249 250 CmsTask task = cms.getTaskService().readTask(((Integer )session.getValue("taskid")).intValue()); 252 253 names.addElement(lang.getLanguageValue("task.label.prioritylevel.high")); 255 names.addElement(lang.getLanguageValue("task.label.prioritylevel.middle")); 256 names.addElement(lang.getLanguageValue("task.label.prioritylevel.low")); 257 258 values.addElement(org.opencms.workflow.CmsTaskService.TASK_PRIORITY_HIGH + ""); 260 values.addElement(CmsTaskService.TASK_PRIORITY_NORMAL + ""); 261 values.addElement(org.opencms.workflow.CmsTaskService.TASK_PRIORITY_LOW + ""); 262 263 return new Integer (task.getPriority() - 1); 265 } 266 267 281 282 public Integer getTeams(CmsObject cms, CmsXmlLanguageFile lang, Vector names, Vector values, 283 Hashtable parameters) throws CmsException { 284 285 List groups = cms.getGroups(); 287 CmsGroup group; 288 names.addElement(lang.getLanguageValue("task.label.emptyrole")); 289 values.addElement(lang.getLanguageValue("task.label.emptyrole")); 290 291 for(int z = 0;z < groups.size();z++) { 293 group = (CmsGroup)groups.get(z); 294 295 if(group.getRole()) { 297 String name = group.getName(); 298 names.addElement(name); 299 values.addElement(name); 300 } 301 } 302 names.addElement(lang.getLanguageValue("task.label.allroles")); 303 values.addElement(C_ALL_ROLES); 304 305 return new Integer (-1); 307 } 308 309 317 318 public Object getUsers(CmsObject cms, String tagcontent, A_CmsXmlContent doc, 319 Object userObj) throws CmsException { 320 StringBuffer retValue = new StringBuffer (); 321 retValue.append(C_ROLE); 322 323 String chooseUser = (new CmsXmlLanguageFile(cms)).getLanguageValue("task.label.emptyuser"); 325 326 List groups = cms.getGroups(); 328 for(int n = 0;n < groups.size();n++) { 329 if(((CmsGroup)groups.get(n)).getRole()) { 330 String groupname = ((CmsGroup)groups.get(n)).getName(); 331 332 List users = cms.getUsersOfGroup(groupname); 334 335 retValue.append(C_ROLE_1 + groupname + C_ROLE_2); 337 retValue.append(C_USER_1 + groupname + C_USER_2 + 0 + C_USER_3 + chooseUser + C_USER_4 + C_USER_5); 338 for(int m = 0;m < users.size();m++) { 339 CmsUser user = (CmsUser)users.get(m); 340 341 retValue.append(C_USER_1 + groupname + C_USER_2 + (m + 1) + C_USER_3 343 + user.getName() + C_USER_4 + user.getName() + C_USER_5); 344 } 345 } 346 } 347 348 retValue.append(C_ROLE_1 + C_ALL_ROLES + C_ROLE_2); 350 retValue.append(C_USER_1 + C_ALL_ROLES + C_USER_2 + 0 + C_USER_3 + chooseUser + C_USER_4 + C_USER_5); 351 List users = cms.getUsers(); 352 for(int m = 0;m < users.size();m++) { 353 CmsUser user = (CmsUser)users.get(m); 354 355 retValue.append(C_USER_1 + C_ALL_ROLES + C_USER_2 + (m + 1) + C_USER_3 357 + user.getName() + C_USER_4 + user.getName() + C_USER_5); 358 } 359 return retValue.toString(); 360 } 361 362 367 368 private void initConstants(CmsXmlWpTemplateFile document) { 369 try { 370 371 if(document.hasData("role")) { 373 374 C_ROLE = document.getDataValue("role"); 376 C_ROLE_1 = document.getDataValue("role_1"); 377 C_ROLE_2 = document.getDataValue("role_2"); 378 C_USER_1 = document.getDataValue("user_1"); 379 C_USER_2 = document.getDataValue("user_2"); 380 C_USER_3 = document.getDataValue("user_3"); 381 C_USER_4 = document.getDataValue("user_4"); 382 C_USER_5 = document.getDataValue("user_5"); 383 } 384 } 385 catch(CmsException exc) { 386 if(CmsLog.getLog(this).isWarnEnabled() ) { 387 CmsLog.getLog(this).warn("Couldn't get xml datablocks for CmsTaskNew", exc); 388 } 389 } 390 } 391 392 402 403 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, 404 Hashtable parameters, String templateSelector) { 405 return false; 406 } 407 } 408
| Popular Tags
|