1 28 29 30 package com.opencms.workplace; 31 32 import org.opencms.db.CmsUserSettings; 33 import org.opencms.file.CmsGroup; 34 import org.opencms.file.CmsObject; 35 import org.opencms.file.CmsUser; 36 import org.opencms.main.CmsException; 37 import org.opencms.main.CmsLog; 38 import org.opencms.workflow.CmsTaskService; 39 40 import com.opencms.template.A_CmsXmlContent; 41 42 import java.util.Hashtable ; 43 import java.util.List ; 44 import java.util.Vector ; 45 46 56 57 public class CmsTaskNew extends CmsWorkplaceDefault { 58 59 60 63 private final static String C_ALL_ROLES = "___all"; 64 65 66 69 private static String C_ROLE = null; 70 71 72 75 private static String C_ROLE_1 = null; 76 77 78 81 private static String C_ROLE_2 = null; 82 83 84 87 private static String C_USER_1 = null; 88 89 90 93 private static String C_USER_2 = null; 94 95 96 99 private static String C_USER_3 = null; 100 101 102 105 private static String C_USER_4 = null; 106 107 108 111 private static String C_USER_5 = null; 112 113 124 125 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 126 Hashtable parameters, String templateSelector) throws CmsException { 127 if(CmsLog.getLog(this).isDebugEnabled() && C_DEBUG) { 128 CmsLog.getLog(this).debug("Getting content of element " + ((elementName==null)?"<root>":elementName)); 129 CmsLog.getLog(this).debug("Template file is: " + templateFile); 130 CmsLog.getLog(this).debug("Selected template section is: " + ((templateSelector==null)?"<default>":templateSelector)); 131 } 132 CmsXmlWpTemplateFile xmlTemplateDocument = (CmsXmlWpTemplateFile)getOwnTemplateFile(cms, 133 templateFile, elementName, parameters, templateSelector); 134 String paraAcceptation = "checked"; 135 String paraAll = "checked"; 136 String paraCompletion = "checked"; 137 String paraDelivery = "checked"; 138 CmsUserSettings settings = new CmsUserSettings(cms); 139 140 int messageAt = settings.getTaskMessageValue(); 142 if((messageAt & CmsTaskService.TASK_MESSAGES_ACCEPTED) != CmsTaskService.TASK_MESSAGES_ACCEPTED) { 143 paraAcceptation = ""; 144 } 145 if((messageAt & CmsTaskService.TASK_MESSAGES_COMPLETED) != CmsTaskService.TASK_MESSAGES_COMPLETED) { 146 paraCompletion = ""; 147 } 148 if((messageAt & CmsTaskService.TASK_MESSAGES_FORWARDED) != CmsTaskService.TASK_MESSAGES_FORWARDED) { 149 paraDelivery = ""; 150 } 151 if((messageAt & CmsTaskService.TASK_MESSAGES_MEMBERS) != CmsTaskService.TASK_MESSAGES_MEMBERS) { 152 paraAll = ""; 153 } 154 155 xmlTemplateDocument.setData(CmsWorkplaceDefault.C_TASKPARA_ACCEPTATION, paraAcceptation); 156 xmlTemplateDocument.setData(CmsWorkplaceDefault.C_TASKPARA_ALL, paraAll); 157 xmlTemplateDocument.setData(CmsWorkplaceDefault.C_TASKPARA_COMPLETION, paraCompletion); 158 xmlTemplateDocument.setData(CmsWorkplaceDefault.C_TASKPARA_DELIVERY, paraDelivery); 159 160 if (C_ROLE == null) { 162 163 initConstants(xmlTemplateDocument); 165 } 166 167 if(parameters.get("ok") != null) { 169 170 try { 172 CmsTaskAction.create(cms, (String )parameters.get("USER"), 173 (String )parameters.get("TEAM"), (String )parameters.get("TASKNAME"), 174 (String )parameters.get("DESCRIPTION"), (String )parameters.get("DATE"), 175 (String )parameters.get("PRIO"), (String )parameters.get("MSG_ACCEPTATION"), 176 (String )parameters.get("MSG_ALL"), (String )parameters.get("MSG_COMPLETION"), 177 (String )parameters.get("MSG_DELIVERY")); 178 templateSelector = "done"; 179 } 180 catch(Exception exc) { 181 if(CmsLog.getLog(this).isWarnEnabled() ) { 182 CmsLog.getLog(this).warn("Could not create task", exc); 183 } 184 xmlTemplateDocument.setData("details", CmsException.getStackTraceAsString(exc)); 185 templateSelector = "error"; 186 } 187 } 188 189 return startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector); 191 } 192 193 207 208 public Integer getTeams(CmsObject cms, CmsXmlLanguageFile lang, Vector names, Vector values, 209 Hashtable parameters) throws CmsException { 210 211 List groups = cms.getGroups(); 213 CmsGroup group; 214 names.addElement(lang.getLanguageValue("task.label.emptyrole")); 215 values.addElement(lang.getLanguageValue("task.label.emptyrole")); 216 217 for(int z = 0;z < groups.size();z++) { 219 group = (CmsGroup)groups.get(z); 220 221 if(group.getRole()) { 223 String name = group.getName(); 224 names.addElement(name); 225 values.addElement(name); 226 } 227 } 228 232 return new Integer (-1); 234 } 235 236 244 245 public Object getUsers(CmsObject cms, String tagcontent, A_CmsXmlContent doc, Object userObj) throws CmsException { 246 StringBuffer retValue = new StringBuffer (); 247 retValue.append(C_ROLE); 248 249 String chooseUser = (new CmsXmlLanguageFile(cms)).getLanguageValue("task.label.emptyuser"); 251 252 List groups = cms.getGroups(); 254 for(int n = 0;n < groups.size();n++) { 255 if(((CmsGroup)groups.get(n)).getRole()) { 256 String groupname = ((CmsGroup)groups.get(n)).getName(); 257 258 List users = cms.getUsersOfGroup(groupname); 260 261 retValue.append(C_ROLE_1 + groupname + C_ROLE_2); 263 retValue.append(C_USER_1 + groupname + C_USER_2 + 0 + C_USER_3 + chooseUser + C_USER_4 + C_USER_5); 264 for(int m = 0;m < users.size();m++) { 265 CmsUser user = (CmsUser)users.get(m); 266 267 retValue.append(C_USER_1 + groupname + C_USER_2 + (m + 1) + C_USER_3 + user.getName() + C_USER_4 + user.getName() + C_USER_5); 269 } 270 } 271 } 272 273 286 return retValue.toString(); 287 } 288 289 294 295 private void initConstants(CmsXmlWpTemplateFile document) { 296 try { 297 C_ROLE = document.getDataValue("role"); 298 C_ROLE_1 = document.getDataValue("role_1"); 299 C_ROLE_2 = document.getDataValue("role_2"); 300 C_USER_1 = document.getDataValue("user_1"); 301 C_USER_2 = document.getDataValue("user_2"); 302 C_USER_3 = document.getDataValue("user_3"); 303 C_USER_4 = document.getDataValue("user_4"); 304 C_USER_5 = document.getDataValue("user_5"); 305 } 306 catch(CmsException exc) { 307 if(CmsLog.getLog(this).isWarnEnabled() ) { 308 CmsLog.getLog(this).warn("Couldn't get xml datablocks for CmsTaskNew", exc); 309 } 310 } 311 } 312 313 323 324 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, Hashtable parameters, String templateSelector) { 325 return false; 326 } 327 } 328 | Popular Tags |