JIFF, JIF Filters or Raley Intake Forms Filters is the core concept of Raley Intake Forms. It helps you to define the rules and conditions for your fields and make forms more dynamic and "smart".

Syntax for JIF Filters is similar to what you can see in Atlassian CQL or in Apache Lucene.

Wildcards are supported everywhere, as well as logical "AND" and "OR" operators.

JIF Filters operate on internal field names and operate on field values (which means that for dropdown fields, JIF Filters operate on "IDs", not the labels)

Field name for Raley Intake Form is visible in the configuration

Let's take this "priority" field as an example

It is a standard JIRA field for setting the issue priority.

When rendered on the form it renders as a dropdown field like this


And actually has 5 values by default

IDLabel
1Highest
2High
3Medium
4Low
5Lowest


In HTML the controls looks like this:

<select data-field="priority" title="Priority" type="select" class="select" name="priority" id="i_priority">
  <option value=""></option>
  <option value="1">Highest</option>
  <option value="2">High</option>
  <option value="3">Medium</option>
  <option value="4">Low</option>
  <option value="5">Lowest</option>
</select>

For example, we want to define the rule which will show a field when "priority" field is selected as "Highest"

The condition will be written like this then

priority:1

And the rule might look like this

Which will be translated to - when a priority field has the highest priority selected show a field with name "description" (for example, this field is set to be hidden initially, on the form load, by using the "form rules")


More examples on JIF Filters

JIF FilterDetails
*Matches all, same as when the condition is left blank
summary:*urgent*When summary field contains the word (full or partly) that match to "urgent"
!summary:*urgent*You can negate the filter with ! sign
priority:[empty] AND summary:*urgent*When priority is not specified and the summary field has the word "urgent"

priority:[empty]

!priority:[empty]

Checking for empty and non empty
summary:*risk* OR label:highriskWhen summary field contains the word "risk" and the label field is set to "highrisk"
(summary:[empty] AND priority:1) OR (!summary:[empty] AND priority:2)You can have multiple conditions wrapped in brackets


You can also use the following functions with fields

FunctionWhat it doesExample
_lengthReturns the length of the field. For empty or non-existent fields the length is 0

Checks if summary field's length is longer than 20 symbols

summary._length:>20


_matches(Regular expression)You can validate the field value agains the given regular expression. Returns true or false

Checks if value is not empty

myfield._matches(^(?=\s*\S).*$)

myfield._matches(^(?=\s*\S).*$):true


Value ends with pdf

myfield._matches(.*?\.pdf)

myfield._matches(.*?\.pdf):true


Value DOES NOT end with pdf

myfield._matches(.*?\.pdf)

myfield._matches(.*?\.pdf):false