PageRenderTime 46ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/com/atlassian/jira/plugins/bitbucket/webwork/ProjectSettings.java

https://bitbucket.org/atlassian/jira-bitbucket-connector/
Java | 106 lines | 84 code | 22 blank | 0 comment | 2 complexity | a5410363027566e148da92396672bf60 MD5 | raw file
  1. package com.atlassian.jira.plugins.bitbucket.webwork;
  2. import com.atlassian.crowd.embedded.api.User;
  3. import com.atlassian.jira.plugin.projectoperation.AbstractPluggableProjectOperation;
  4. import com.atlassian.jira.plugins.bitbucket.api.SourceControlRepository;
  5. import com.atlassian.jira.plugins.bitbucket.spi.RepositoryManager;
  6. import com.atlassian.jira.plugins.bitbucket.spi.RepositoryUri;
  7. import com.atlassian.jira.project.Project;
  8. import com.atlassian.sal.api.ApplicationProperties;
  9. import org.springframework.beans.factory.annotation.Qualifier;
  10. import java.util.List;
  11. import org.springframework.beans.factory.annotation.Qualifier;
  12. import java.util.List;
  13. import java.util.regex.Pattern;
  14. public class ProjectSettings extends AbstractPluggableProjectOperation
  15. {
  16. private final RepositoryManager globalRepositoryManager;
  17. private final ApplicationProperties applicationProperties;
  18. public ProjectSettings(@Qualifier("globalRepositoryManager") RepositoryManager repositoryManager, ApplicationProperties applicationProperties)
  19. {
  20. this.globalRepositoryManager = repositoryManager;
  21. this.applicationProperties = applicationProperties;
  22. }
  23. @Override
  24. public String getHtml(final Project project, final User user)
  25. {
  26. String baseURL = applicationProperties.getBaseUrl();
  27. List<SourceControlRepository> repositories = globalRepositoryManager.getRepositories(project.getKey());
  28. StringBuilder result = new StringBuilder();
  29. result.append("<div style=\"padding-bottom:5px; \">");
  30. result.append("<span class=\"project-config-list-label\">");
  31. result.append("Bitbucket and GitHub Repositories:");
  32. result.append("</span>\n");
  33. result.append("<span class=\"project-config-list-value\">");
  34. result.append(" (<a href='")
  35. .append(baseURL)
  36. .append("/secure/admin/ConfigureBitbucketRepositories!default.jspa?projectKey=")
  37. .append(project.getKey())
  38. .append("&mode=single'>")
  39. .append("Configure</a>)");
  40. result.append("</span>");
  41. result.append("</div>");
  42. if (repositories.isEmpty())
  43. {
  44. appendNoneRow(result);
  45. } else
  46. {
  47. for (int i=0; i<repositories.size(); i++) {
  48. SourceControlRepository repository = repositories.get(0);
  49. appendRepositoryRow(result, repository);
  50. }
  51. }
  52. return result.toString();
  53. }
  54. private void appendNoneRow(StringBuilder result)
  55. {
  56. appendRow(result, "None");
  57. }
  58. private void appendRepositoryRow(StringBuilder result, SourceControlRepository repository)
  59. {
  60. StringBuffer repoRowContent = new StringBuffer();
  61. RepositoryUri repositoryUri = repository.getRepositoryUri();
  62. repoRowContent.append(repository.getRepositoryType());
  63. repoRowContent.append(": ");
  64. repoRowContent.append("<a href=\"");
  65. repoRowContent.append(repositoryUri.getRepositoryUrl());
  66. repoRowContent.append("\" target=\"_new\">");
  67. repoRowContent.append(repositoryUri.getSlug());
  68. repoRowContent.append("</a>");
  69. appendRow(result, repoRowContent.toString());
  70. }
  71. private void appendRow(StringBuilder result, String rowText)
  72. {
  73. result.append("<div>");
  74. result.append("<span class=\"project-config-list-label\">");
  75. result.append(rowText);
  76. result.append("</span>");
  77. result.append("</div>");
  78. }
  79. @Override
  80. public boolean showOperation(final Project project, final User user)
  81. {
  82. return true;
  83. }
  84. }