/src/main/resources/com/onresolve/jira/groovy/canned/admin/ConditionTester.groovy
Groovy | 82 lines | 68 code | 13 blank | 1 comment | 3 complexity | f0ba91988e6e7ddb5bd604067e8a7283 MD5 | raw file
- package com.onresolve.jira.groovy.canned.admin
-
- import com.atlassian.jira.util.ErrorCollection
- import com.onresolve.jira.groovy.canned.CannedScript
- import com.onresolve.jira.groovy.canned.utils.ConditionUtils
- import org.apache.log4j.Category
- import com.atlassian.jira.util.SimpleErrorCollection
- import com.atlassian.jira.issue.IssueManager
- import com.atlassian.jira.ComponentManager
- import com.atlassian.jira.issue.MutableIssue
-
- class ConditionTester implements CannedScript{
-
- public static String FIELD_PREVIEW_ISSUE = "FIELD_PREVIEW_ISSUE"
- Category log = Category.getInstance(ConditionTester.class)
- ComponentManager componentManager = ComponentManager.getInstance()
- IssueManager issueManager = componentManager.getIssueManager()
-
- String getName() {
- "Condition Tester"
- }
-
- String getDescription() {
- "Test conditions that are used in your workflow functions"
- }
-
- public String getHelpUrl() {
- "https://studio.plugins.atlassian.com/wiki/display/GRV/Built-In+Scripts#Built-InScripts-ConditionTester"
- }
-
- List getCategories() {
- ["ADMIN"]
- }
-
- List getParameters(Map params) {
- [
- [
- Name:FIELD_PREVIEW_ISSUE,
- Label:"Preview Issue Key",
- Description:"Issue key for previewing the condition with...",
- ],
- ConditionUtils.getConditionParameter(),
- ]
- }
-
- ErrorCollection doValidate(Map params, boolean forPreview) {
- // todo: same code in SendCustomEmail
- ErrorCollection errorCollection = new SimpleErrorCollection()
- String prvwIssueKey = params[FIELD_PREVIEW_ISSUE] as String
- if (forPreview) {
- if (! issueManager.getIssueObject(prvwIssueKey as String))
- errorCollection.addError(FIELD_PREVIEW_ISSUE, "This issue doesn't exist.")
-
- String cond = params[ConditionUtils.FIELD_CONDITION] as String
- if (cond) {
- try {
- ConditionUtils.processCondition(cond, issueManager.getIssueObject(prvwIssueKey), true)
- }
- catch (Exception e) {
- errorCollection.addError(ConditionUtils.FIELD_CONDITION, e.getMessage())
- log.debug(e.getMessage())
- }
- }
- }
- errorCollection
- }
-
- Map doScript(Map params) {
- params['output'] = "<b>Please press the Preview button<b>"
- params
- }
-
- String getDescription(Map params, boolean forPreview) {
- MutableIssue prvwIssue = issueManager.getIssueObject(params[FIELD_PREVIEW_ISSUE] as String)
- Boolean result = ConditionUtils.processCondition(params[ConditionUtils.FIELD_CONDITION] as String, prvwIssue, false)
- "The result evaluated to <b>$result</b>"
- }
-
- public Boolean isFinalParamsPage(Map params) {
- true
- }
- }