Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

This is the documentation for ConfiForms Server/Data Center app

However, this might also work for ConfiForms cloud and in most cases it does. But please see this page to understand the differences between server and cloud versions of the ConfiForms app.


Filters

 

Filters is a very important concept in ConfiForms and is used in many places, basically it is the core of ConfiForms, a base which helps to connect ConfiForms forms and allows to query data stored within ConfiForms form:

  • to limit number of records returned by "*views" macros (TableView, ListView, CardView, CalendarView and ValueView)
  • to fire IFTTT actions based on conditions (ConfiForms IFTTT macro)
  • to execute validation rules based on a condition (ConfiForms Field Definition Rules)

 

See also Accessing field values and properties. You can use complex properties in your filters. For example filtering dropdown fields by values and by labels, filtering page type fields by page metadata fields, filtering user fields by, for example - email property

 

ConfiForms plugin uses 'Lucene like' syntax for expressions (however not everything, but the basics are supported), supports grouping using brackets (at the moment no support for inner brackets). Supports filtering for expressions that start with a wild-card. Supports filtering per field as well as free text search (filter to match against any field value).

Operators AND and OR are case-sensitive!

Supports not notation, to filter records that do not match the given filter: '!' is used for that. Example: !f1:[empty] - will look for records where f1 field value is not empty (has some value)

Supports simple math operations and comparisons on dates (to add or substract days from today's date). See examples below

Valid example: (f1:*success AND f2:>[yesterday]) OR (f3:accepted) - matches records with field values having 'success' and where f2 field value is after yesterday or where f3 filed value is equals to 'accepted'

Valid example: (f1:*success AND f2:>[today]-1) OR (!f3:[empty]) - matches records with field values having 'success' and where f2 field value is after yesterday or where f3 field value is not empty

Invalid example: (f1:*success AND (f2:>[yesterday] OR (f3:accepted)). As ConfiForms does not support inner brackets in expressions (yet)

 

Reserved words to use in expressions:

[empty]To match empty values for particular field. Example: field1:[empty] - will match records where field1 is empty (does not have a value, but the form defines this field)
[now]Current time and date, useful with '<' and '>' for comparing with dates stored. Example: someDateField:<[now] - will match records where field 'someDateField' has value which is in the past compared to now (current time)
[today]Same as [now], but without time
[tomorrow]To compare against tomorrow's date. Also something like [today]+1 could be used instead
[yesterday]To compare against yesterday's date. Also something like [today]-1 could be used instead
[dateyyyyMMdd]To compare against given date in the format: yyyyMMdd, example: [date20150130] to give a date as Jan 30 2015
[datetimeyyyyMMdd HH:mm]To compare against given date with time in the format: yyyyMMdd HH:mm, example: [date20151231 12:13] to give a date as Dec 31 2015 12:13
[datetimetoday hh:mm]You can use a shortcut to "today" with given construction
'<' and '>' (and '<=' and '>=')Can be used together with date and datetime fields, as well as to compare values for numeric fields stored
!To reverse the filter condition. Example: !field1:[empty] - will find records that have 'field1' field filled
:this

In *views macros you can reference current user and current page as "this" (when used to filter user (and multiuser) and page (and autopage) field types respectfully),

Example:

  • thepage:this
  • createdBy:this

(thepage is the field of type Page and createdBy is a metadata field to hold created by info for given record). See more about metadata field and available field types in Documentation

Some examples:

  • field1:[today]-5 - assuming field1 is of type date (or datetime) this filter will return records where field1 value is not older than 5 days from now
  • field1:[today]+10 - assuming field1 is of type date (or datetime) this filter will return records where field1 value is not after 10 days from now

 

Since ConfiForms version 1.13

We now support the following constants in field names:

Field name constantHow to useDetails

[count]

_count

_count:<3Will check for records count in the resultset and will return an empty result if this condition is not met. Important: this works better when you add this condition as last one, meaning that other filters were already applied on the dataset and you need to check the count of that filtered result

[today]

_today

_today:>[date20151210]

For queries to run on a certain date (when date given is a constant). Will check today's date against the given date.

In this example: the query will match when todays date is AFTER the 10 Dec 2015

[now]

_now

_now:<[datetime20151210 2:30] When "now" (current time/date) is before the given date/time

[user]

_user

_user:someusername

!_user:someusername

Brings the user context into query execution. Available from ConfiForms version 1.17+

Anonymous users are evaluated as ""

All fields support >, <, <=, >= and =

Since version 1.24.x of ConfiForms we had to change the constants for "field names" in filters from [count] to _count. This only concerns the field names constants you can use in filters to access the values of the current conttext, such as, current time, user and records count. See the table above

 

 

Some field types (ConfiForms Field Definition), such as user types and page types could use "this" to reference to current user or current page (where the filter is used). See below

 

How to filter by:

Records created todaycreated:[today]
Records created before todaycreated:<[today]
Records created yesterdaycreated:<[today]-1
Records created yesterday (alternative to previous example)created:<[yesterday]
Records owned by current userownedBy:this
Records created by current usercreatedBy:this

When you have autopage type of field, that sets automatically the page where the record was created.

You might want to filter by that, having a ListView, CardView or TableView on it.

Let's say the autopage field is named "apage"

apage:this
How to filter, if field type is Page or Autopage: use Confluence pageId numeric value in filterssomepagefield:pageId
  • No labels