| 1 28 29 30 package com.opencms.workplace; 31 32 import org.opencms.db.CmsDbUtil; 33 import org.opencms.file.CmsGroup; 34 import org.opencms.file.CmsObject; 35 import org.opencms.main.CmsException; 36 import org.opencms.main.CmsLog; 37 import org.opencms.workflow.CmsTaskService; 38 39 import com.opencms.core.I_CmsSession; 40 import com.opencms.legacy.CmsXmlTemplateLoader; 41 import com.opencms.template.CmsXmlTemplateFile; 42 43 import java.util.Hashtable ; 44 import java.util.List ; 45 import java.util.Vector ; 46 47 57 58 public class CmsTaskContent extends CmsWorkplaceDefault { 59 60 71 72 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 73 Hashtable parameters, String templateSelector) throws CmsException { 74 if(CmsLog.getLog(this).isDebugEnabled() && C_DEBUG) { 75 CmsLog.getLog(this).debug("Getting content of element " + ((elementName==null)?"<root>":elementName)); 76 CmsLog.getLog(this).debug("Template file is: " + templateFile); 77 CmsLog.getLog(this).debug("Selected template section is: " + ((templateSelector==null)?"<default>":templateSelector)); 78 } 79 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 80 String taskid = (String )session.getValue(CmsWorkplaceDefault.C_PARA_STARTTASKID); 81 if(session.getValue(CmsWorkplaceDefault.C_PARA_STARTTASKID) != null) { 82 session.removeValue(CmsWorkplaceDefault.C_PARA_STARTTASKID); 83 session.removeValue(CmsWorkplaceDefault.C_PARA_VIEW); 84 CmsXmlWpConfigFile conf = new CmsXmlWpConfigFile(cms); 85 String actionPath = conf.getWorkplaceActionPath(); 86 try { 87 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendCmsRedirect(actionPath + "tasks_content_detail.html?taskid=" + taskid); 88 } 89 catch(Exception e) { 90 if(CmsLog.getLog(this).isWarnEnabled()) { 91 CmsLog.getLog(this).warn("Could not send redirect", e); 92 } 93 } 94 return null; 95 } 96 CmsXmlTemplateFile xmlTemplateDocument = getOwnTemplateFile(cms, templateFile, elementName, parameters, templateSelector); 97 98 return startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector); 100 } 101 102 112 113 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, 114 Hashtable parameters, String templateSelector) { 115 return false; 116 } 117 118 128 129 private Vector readTasksForRole(CmsObject cms, int project, int taskType, String orderBy, String groupBy) throws CmsException { 130 String name = cms.getRequestContext().currentUser().getName(); 131 List groups = cms.getGroupsOfUser(name); 132 CmsGroup group; 133 List tasks; 134 Vector allTasks = new Vector (); 135 for(int i = 0;i < groups.size();i++) { 136 group = (CmsGroup)groups.get(i); 137 tasks = cms.getTaskService().readTasksForRole(project, group.getName(), taskType, orderBy, groupBy); 138 139 for(int z = 0;z < tasks.size();z++) { 141 allTasks.addElement(tasks.get(z)); 142 } 143 } 144 return allTasks; 145 } 146 147 154 155 public List taskList(CmsObject cms, CmsXmlLanguageFile lang) throws CmsException { 156 String orderBy = ""; 157 String groupBy = ""; 158 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 159 Object allProjects = session.getValue(CmsWorkplaceDefault.C_SESSION_TASK_ALLPROJECTS); 160 int project = cms.getRequestContext().currentProject().getId(); 161 String filter = (String )session.getValue(CmsWorkplaceDefault.C_SESSION_TASK_FILTER); 162 List retValue; 163 164 if((allProjects != null) && (((Boolean )allProjects).booleanValue())) { 166 project = CmsDbUtil.UNKNOWN_ID; 167 } 168 if(filter == null) { 169 filter = "a1"; 170 } 171 int filterNum = Integer.parseInt(filter, 16); 172 String userName = cms.getRequestContext().currentUser().getName(); 173 switch(filterNum) { 174 case 0xa1: 175 retValue = cms.getTaskService().readTasksForUser(project, userName, CmsTaskService.TASKS_NEW, orderBy, groupBy); 176 break; 177 178 case 0xa2: 179 retValue = cms.getTaskService().readTasksForUser(project, userName, CmsTaskService.TASKS_ACTIVE, orderBy, groupBy); 180 break; 181 182 case 0xa3: 183 retValue = cms.getTaskService().readTasksForUser(project, userName, CmsTaskService.TASKS_DONE, orderBy, groupBy); 184 break; 185 186 case 0xb1: 187 retValue = readTasksForRole(cms, project, CmsTaskService.TASKS_NEW, orderBy, groupBy); 188 break; 189 190 case 0xb2: 191 retValue = readTasksForRole(cms, project, CmsTaskService.TASKS_ACTIVE, orderBy, groupBy); 192 break; 193 194 case 0xb3: 195 retValue = readTasksForRole(cms, project, CmsTaskService.TASKS_DONE, orderBy, groupBy); 196 break; 197 198 case 0xc1: 199 retValue = cms.getTaskService().readTasksForProject(project, CmsTaskService.TASKS_NEW, orderBy, groupBy); 200 break; 201 202 case 0xc2: 203 retValue = cms.getTaskService().readTasksForProject(project, CmsTaskService.TASKS_ACTIVE, orderBy, groupBy); 204 break; 205 206 case 0xc3: 207 retValue = cms.getTaskService().readTasksForProject(project, CmsTaskService.TASKS_DONE, orderBy, groupBy); 208 break; 209 210 case 0xd1: 211 retValue = cms.getTaskService().readGivenTasks(project, userName, CmsTaskService.TASKS_NEW, orderBy, groupBy); 212 break; 213 214 case 0xd2: 215 retValue = cms.getTaskService().readGivenTasks(project, userName, CmsTaskService.TASKS_ACTIVE, orderBy, groupBy); 216 break; 217 218 case 0xd3: 219 retValue = cms.getTaskService().readGivenTasks(project, userName, CmsTaskService.TASKS_DONE, orderBy, groupBy); 220 break; 221 222 default: 223 retValue = cms.getTaskService().readTasksForUser(project, userName, CmsTaskService.TASKS_ALL, orderBy, groupBy); 224 break; 225 } 226 if(retValue == null) { 227 return new Vector (); 228 } 229 else { 230 return retValue; 231 } 232 } 233 234 237 protected byte[] startProcessing( 238 CmsObject cms, 239 CmsXmlTemplateFile xmlTemplateDocument, 240 String elementName, 241 Hashtable parameters, 242 String templateSelector) throws CmsException { 243 244 if ((parameters != null) && (parameters.size() > 0) && (parameters.containsKey("taskid"))) { 246 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 247 session.putValue(CmsWorkplaceDefault.C_PARA_STARTTASKID, parameters.get("taskid")); 248 } 249 250 return super.startProcessing(cms, xmlTemplateDocument, elementName, parameters, templateSelector); 251 } 252 } 253 | Popular Tags |