PageRenderTime 38ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/resources/com/onresolve/jira/groovy/canned/admin/ConditionTester.groovy

https://bitbucket.org/sorin/jira-plugin-intellij
Groovy | 82 lines | 68 code | 13 blank | 1 comment | 3 complexity | f0ba91988e6e7ddb5bd604067e8a7283 MD5 | raw file
  1. package com.onresolve.jira.groovy.canned.admin
  2. import com.atlassian.jira.util.ErrorCollection
  3. import com.onresolve.jira.groovy.canned.CannedScript
  4. import com.onresolve.jira.groovy.canned.utils.ConditionUtils
  5. import org.apache.log4j.Category
  6. import com.atlassian.jira.util.SimpleErrorCollection
  7. import com.atlassian.jira.issue.IssueManager
  8. import com.atlassian.jira.ComponentManager
  9. import com.atlassian.jira.issue.MutableIssue
  10. class ConditionTester implements CannedScript{
  11. public static String FIELD_PREVIEW_ISSUE = "FIELD_PREVIEW_ISSUE"
  12. Category log = Category.getInstance(ConditionTester.class)
  13. ComponentManager componentManager = ComponentManager.getInstance()
  14. IssueManager issueManager = componentManager.getIssueManager()
  15. String getName() {
  16. "Condition Tester"
  17. }
  18. String getDescription() {
  19. "Test conditions that are used in your workflow functions"
  20. }
  21. public String getHelpUrl() {
  22. "https://studio.plugins.atlassian.com/wiki/display/GRV/Built-In+Scripts#Built-InScripts-ConditionTester"
  23. }
  24. List getCategories() {
  25. ["ADMIN"]
  26. }
  27. List getParameters(Map params) {
  28. [
  29. [
  30. Name:FIELD_PREVIEW_ISSUE,
  31. Label:"Preview Issue Key",
  32. Description:"Issue key for previewing the condition with...",
  33. ],
  34. ConditionUtils.getConditionParameter(),
  35. ]
  36. }
  37. ErrorCollection doValidate(Map params, boolean forPreview) {
  38. // todo: same code in SendCustomEmail
  39. ErrorCollection errorCollection = new SimpleErrorCollection()
  40. String prvwIssueKey = params[FIELD_PREVIEW_ISSUE] as String
  41. if (forPreview) {
  42. if (! issueManager.getIssueObject(prvwIssueKey as String))
  43. errorCollection.addError(FIELD_PREVIEW_ISSUE, "This issue doesn't exist.")
  44. String cond = params[ConditionUtils.FIELD_CONDITION] as String
  45. if (cond) {
  46. try {
  47. ConditionUtils.processCondition(cond, issueManager.getIssueObject(prvwIssueKey), true)
  48. }
  49. catch (Exception e) {
  50. errorCollection.addError(ConditionUtils.FIELD_CONDITION, e.getMessage())
  51. log.debug(e.getMessage())
  52. }
  53. }
  54. }
  55. errorCollection
  56. }
  57. Map doScript(Map params) {
  58. params['output'] = "<b>Please press the Preview button<b>"
  59. params
  60. }
  61. String getDescription(Map params, boolean forPreview) {
  62. MutableIssue prvwIssue = issueManager.getIssueObject(params[FIELD_PREVIEW_ISSUE] as String)
  63. Boolean result = ConditionUtils.processCondition(params[ConditionUtils.FIELD_CONDITION] as String, prvwIssue, false)
  64. "The result evaluated to <b>$result</b>"
  65. }
  66. public Boolean isFinalParamsPage(Map params) {
  67. true
  68. }
  69. }