<%@ page import="com.atlassian.jira.ComponentManager"%> <%@ page import="com.atlassian.jira.bean.SubTask"%> <%@ page import="com.atlassian.jira.bean.SubTaskBean"%> <%@ page import="com.atlassian.jira.issue.Issue"%> <%@ page import="com.atlassian.jira.issue.IssueUtils"%> <%@ page import="com.atlassian.jira.issue.util.AggregateTimeTrackingBean"%> <%@ page import="com.atlassian.jira.web.action.issue.ViewIssue"%> <%@ page import="com.atlassian.jira.web.component.IssueTableLayoutBean"%> <%@ page import="com.atlassian.jira.web.component.IssueTableWebComponent"%> <%@ page import="com.atlassian.jira.web.component.TableLayoutFactory"%> <%@ page import="com.opensymphony.user.User"%> <%@ page import="java.util.ArrayList"%> <%@ page import="java.util.Collection" %> <%@ page import="java.util.List" %> <%@ taglib uri="webwork" prefix="webwork" %> <%@ taglib uri="webwork" prefix="ui" %> <%-- Ensure we retrive 'all' subtasks and see whetehr there are any of them, and not just sub-tasks for current view, as if there are no sub-tasks for current view, vut still some exists, we should draw the subtasks table. See JRA-5087 --%> <%-- Pad out the 'Sub-Task Progress' graph all the way to the right --%>
    ?subTaskView=unresolved">   ?subTaskView=all">      
  
<% ViewIssue viewIssue = (ViewIssue) pageContext.getAttribute("viewIssueAction"); AggregateTimeTrackingBean aggregateTTBean = viewIssue.getAggregateTimeTrackingBean(); SubTaskBean subTaskBean = viewIssue.getSubTaskBean(); String subTaskView = viewIssue.getSubTaskView(); Collection issues = subTaskBean.getSubTasks(subTaskView); Issue parentIssue = viewIssue.getIssueObject(); User user = viewIssue.getRemoteUser(); List issueObjects = new ArrayList(); boolean atLeastOneIssueHasTimeTrackingData = false; // get the subtask Issue object out of each SubTask and calculate if we need to display timetracking progress for (java.util.Iterator iterator = issues.iterator(); iterator.hasNext();) { SubTask subTask = (SubTask) iterator.next(); Issue subTaskIssue = subTask.getSubTaskIssueObject(); atLeastOneIssueHasTimeTrackingData = atLeastOneIssueHasTimeTrackingData || IssueUtils.hasTimeTracking(subTaskIssue); issueObjects.add(subTaskIssue); } IssueTableWebComponent issueTable = new IssueTableWebComponent(); TableLayoutFactory layoutFactory = (TableLayoutFactory) ComponentManager.getComponentInstanceOfType(TableLayoutFactory.class); IssueTableLayoutBean layout = layoutFactory.getSubTaskIssuesLayout(user, parentIssue, subTaskBean, subTaskView, atLeastOneIssueHasTimeTrackingData); layout.addCellDisplayParam("aggTTBean", aggregateTTBean); out.print(issueTable.getHtml(layout, issueObjects, null)); %>