I'm trying to write a plugin module to show subtask comments in the screen for a parent issue. Here's what I've got so far:
public class SubtaskCommentsIssueTabPanel extends AbstractIssueTabPanel implements IssueTabPanel
{
private static final Logger log = LoggerFactory.getLogger(SubtaskCommentsIssueTabPanel.class);
public List getActions(Issue issue, User remoteUser) {
List<IssueAction> issueactions = new ArrayList();
Collection<Issue> subtasks = ComponentAccessor.getSubTaskManager().getSubTaskObjects(issue);
for (Issue subtask : subtasks) {
List<Comment> comments = ComponentAccessor.getCommentManager().getComments(subtask);
for (Comment comment : comments) {
issueactions.add(comment);
}
}
return issueactions;
}
public boolean showPanel(Issue issue, User remoteUser)
{
return true;
}
}
This doesn't compile, because on line 16 I'm trying to add a Comment to a List<IssueAction>. If I return a List<Comment>, then nothing appears in the new tab.
How can I make this work? Admittedly I'm new to Java as well so this process has involved a lot of throwing stuff at the wall and seeing what sticks.
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.issue.IssueEvent
import org.apache.log4j.Logger
import static org.apache.log4j.Level.DEBUG
import com.atlassian.jira.bc.issue.IssueService.UpdateValidationResult
import com.atlassian.jira.bc.issue.IssueService.IssueResult
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.bc.issue.IssueService.TransitionValidationResult
import com.atlassian.jira.issue.IssueInputParametersImpl
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.util.ErrorCollection
import com.atlassian.jira.issue.index.IssueIndexManager
import java.sql.Timestamp
import com.atlassian.jira.issue.comments.CommentManager
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
import java.text.DateFormat
import java.util.Date
import java.text.SimpleDateFormat
class SummaryStatusDate extends AbstractIssueEventListener {
Logger log = Logger.getLogger(SummaryStatusDate.class)
@Override
void workflowEvent(IssueEvent event) {
log.setLevel(org.apache.log4j.Level.DEBUG)
def field = event.getChangeLog().getRelated('ChildChangeItem').any{it.field.toString().equalsIgnoreCase("Summary Updated")}
if (field){
SimpleDateFormat format2 = new SimpleDateFormat("dd/MMM/yy hh:mm aa")
def today = format2.format((new Date()))
Issue issue = event.getIssue()
ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getUser()
ComponentManager componentManager = ComponentManager.getInstance()
CommentManager commentManager = componentManager.getCommentManager()
commentManager.create(issue, user, "Summary Status Updated on " + today , false)
}
}
}
This may help.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.