[2014-09-15] Released Jira Workflow Toolbox 2.1.21
New features
- Parser enriched with 21 new functions: (More details at
Expression Parser.)
- transitionLinkedIssues(string issue_link_types) : issue list
- filterByFieldValue(issue list issues, numeric field field, comparison operator operator, number n) : issue list
- filterByFieldValue(issue list issues, string field field, comparison operator operator, string s) : issue list
- append(string list l, string list m) : string list
- append(number list l, number list m) : number list
- union(string list l, string list m) : string list
- union(number list l, number list m) : number list
- except(string list l, string list m) : string list
- except(number list l, number list m) : number list
- intersect(string list l, string list m) : string list
- intersect(number list l, number list m) : number list
- distinct(string list l) : string list
- distinct(number list l) : number list
- filterByCardinality(issue list l, comparison operator operator, number n) : issue list
- filterByCardinality(string list l, comparison operator operator, number n) : string list
- filterByCardinality(number list l, comparison operator operator, number n) : number list
- toStringList(string s, string separators) : string list
- toNumberList(string s, string separators) : string list
- getIssuesFromProjects(string projects) : issue list
- issueKeysToIssueList(string issues) : issue list
- isInRole(string user_name, string role_name) : boolean
- Parser enriched with 4 new comparison operators to be used with strings, multi-valuated fields and lists:
OPERATOR | MEANING | EXAMPLES |
---|---|---|
~ | contains | "Hello world!" ~ "world", checks whether a string contains a substring %{00125} ~ %{00020}, checks whether "Component leaders" contains "Current user" linkedIssues() ~ subtasks(), checks whether all subtasks are also linked to current issue |
!~ | doesn't contain | "world" !~ "Hello world!" %{00074} !~ %{00077}, checks whether "Fixed versions" doesn't contain "Affected versions" fieldValue(%{00006}, linkedIssues()) !~ fieldValue(%{00006}, subtasks()), checks whether linked issues reporters don't include all subtasks reporters |
in | is contained in | "world" in "Hello world!", to check whether a substring is contained in a string %{00020} in %{00125}, checks whether "Current user" is contained in "Component leaders" subtasks() in linkedIssues(), checks whether all subtasks are also linked to current issue |
not in | isn't contained in | "Hello world!" not in "world" %{00077} not in %{00074}, checks whether "Affected versions" are not contained in "Fixed versions" fieldValue(%{00006}, subtasks()) not in fieldValue(%{00006}, linkedIssues()), checks whether all subtasks reporters are not included in linked issues reporters |
These 4 new comparison operators respect cardinality, and work on the following data types:
- String
- Multi-valued fields: Multi Select, Checkboxes, Components, Versions, Multi User Picker, Multi Group Picker, Issue Pickers, Attachments and Labels.
- Issue list: Returned by functions like subtasks(), linkedIssues(), transitionLinkedIssues(), filterByFieldValue(), filterByStatus(), filterByIssueType(), filterByResolution(), filterByProject(), append(), union(), except(), intersect() and distinct().
- String list: Returned by functions like fieldValue(), append(), union(), except(), intersect() and distinct().
- Number list: Returned by functions like fieldValue(), append(), union(), except(), intersect() and distinct().
Improvements
- Comparison operators = and != now can also be used on multi-valued fields, issue lists, number lists and string lists. These operators respect cardinality and order.
- Function filterByResolution(issue list issues, string resolutions) now returns unresolved issues when argument resolutions receives an empty string ("").
- Improvements on condition and validator "
Users in field are (not) in a project role":
- Both features now support "Group Picker" and "Multi-Group Picker" custom fields. When these type of fields are used, all users in the groups are evaluated.
- 4 new conditions added to validator.
- 7 new conditions added to condition, giving it the same functionality as the validator.
- Minor UI improvements.
- Support for reading and writing the following custom field types provided for third-party add-ons:
- Project Roles or Groups User Picker, Project Roles or Groups Multi User Picker, Single Selected Users Picker and Multi Selected Users Picker custom fields provided by Custom User Pickers add-on.
- Transition Caller Field and Parent Status Field custom field provided by Jira Misc Custom Fields add-on.
- User Picker - per Group custom field provided by User Group Picker add-on.
- SIL User Picker custom field provided by User Group Picker PRO add-on.
- All custom field types provided by Kepler Custom Fields add-on.
Fixed bugs
- All 3 functions linkedIssues() didn't return issues linked in transition screen.
- Function numberOfSelectedItems(%{00080}) always returned 1, instead of the number of labels in the issue, as expected.
- Number to String auto-casting issues in the parser.
- Function count() wasn't working correctly with arguments of type "String list" and "Number list".
- Validator Validation on linked issues was counting twice each issue link introduced in transition.
- When parent issue was reading an ephemeral field previously written by one of its subtasks, the field appeared as uninitialized.
- Fixed bad UI design for issue link type selection in post-function Break issue link: it wasn't possible to select of issue link types in only one direction (inward or outward).