PageRenderTime 62ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/com/atlassian/jira/collector/plugin/web/admin/ViewCollectors.java

https://bitbucket.org/knecht_andreas/jira-issue-collector-plugin/
Java | 102 lines | 85 code | 12 blank | 5 comment | 3 complexity | 673e9fb52b40f49e3c5afa710a4dcbf4 MD5 | raw file
  1. package com.atlassian.jira.collector.plugin.web.admin;
  2. import com.atlassian.jira.bc.ServiceOutcome;
  3. import com.atlassian.jira.bc.project.ProjectService;
  4. import com.atlassian.jira.collector.plugin.components.Collector;
  5. import com.atlassian.jira.config.ConstantsManager;
  6. import com.atlassian.jira.issue.issuetype.IssueType;
  7. import com.atlassian.jira.plugin.profile.UserFormatManager;
  8. import com.atlassian.jira.project.Project;
  9. import com.atlassian.jira.web.action.JiraWebActionSupport;
  10. import com.atlassian.jira.collector.plugin.components.CollectorActivityHelper;
  11. import com.atlassian.jira.collector.plugin.components.CollectorService;
  12. import com.atlassian.sal.api.websudo.WebSudoRequired;
  13. import java.util.HashMap;
  14. import java.util.List;
  15. import java.util.Map;
  16. /**
  17. * Lists all the collectors currently defined
  18. *
  19. * @since v1.0
  20. */
  21. @WebSudoRequired
  22. public class ViewCollectors extends JiraWebActionSupport
  23. {
  24. private final CollectorService collectorService;
  25. private final ProjectService projectService;
  26. private final ConstantsManager constantsManager;
  27. private final UserFormatManager userFormatManager;
  28. private final CollectorActivityHelper collectorActivityHelper;
  29. private List<Collector> collectors;
  30. private Map<String, List<Integer>> collectorActivty = new HashMap<String, List<Integer>>();
  31. public ViewCollectors(final CollectorService collectorService, final ProjectService projectService,
  32. final ConstantsManager constantsManager, final UserFormatManager userFormatManager,
  33. final CollectorActivityHelper collectorActivityHelper)
  34. {
  35. this.collectorService = collectorService;
  36. this.projectService = projectService;
  37. this.constantsManager = constantsManager;
  38. this.userFormatManager = userFormatManager;
  39. this.collectorActivityHelper = collectorActivityHelper;
  40. }
  41. @Override
  42. public String doDefault() throws Exception
  43. {
  44. ServiceOutcome<List<Collector>> result = collectorService.getCollectors(getLoggedInUser());
  45. if (!result.isValid())
  46. {
  47. return ERROR;
  48. }
  49. collectors = result.getReturnedValue();
  50. return SUCCESS;
  51. }
  52. public List<Collector> getCollectors()
  53. {
  54. return collectors;
  55. }
  56. public Project getProject(Long projectId)
  57. {
  58. return projectService.getProjectById(getLoggedInUser(), projectId).getProject();
  59. }
  60. public IssueType getIssueType(Long issueTypeId)
  61. {
  62. return constantsManager.getIssueTypeObject(issueTypeId.toString());
  63. }
  64. public String getFormattedUser(String username)
  65. {
  66. return userFormatManager.getUserFormat("profileLinkActionHeader").format(username, "collector-reporter");
  67. }
  68. public List<Integer> getActivityForCollector(final Collector collector)
  69. {
  70. if (!collectorActivty.containsKey(collector.getId()))
  71. {
  72. collectorActivty.put(collector.getId(), collectorActivityHelper.getIssuesCreatedPerDay(getLoggedInUser(), collector, 30));
  73. }
  74. return collectorActivty.get(collector.getId());
  75. }
  76. public int getTotalNumberOfIssuesForCollector(final Collector collector)
  77. {
  78. final List<Integer> activityForCollector = getActivityForCollector(collector);
  79. int sum = 0;
  80. for (Integer issuesCreated : activityForCollector)
  81. {
  82. sum += issuesCreated;
  83. }
  84. return sum;
  85. }
  86. public String getActivityUrl(final Collector collector)
  87. {
  88. return collectorActivityHelper.getIssueNavigatorUrl(getLoggedInUser(), collector);
  89. }
  90. }