...
Since ConfiForms app version 2.x we publish release notes here
Version 2.25.2
...
- Fixed missing header in Smart multi-row field when set to render as TableView
- Fixed issue with default fields in ConfiForms Filter Control macro (rendering system fields by default as well, which it should not)
- Experimental support in Import API to allow users to specify "field or fields as unique key" to identify a record to update (in addition to "entryId" column mapping)
- Added support for importing of smart multi-row field values via Import API
- Lookup and Set rule (ConfiForms Field Definition Rules#Lookupandsetvalue and others from "Lookup and Set" rules family) has been improved to work correctly with values that have CRLF (new lines) - looked up from TextArea/Markdown field
- queryAndSet function now to support expressions on the field it is queried on - Virtual functions. Wrapping the field or expression in parenthesis will tell ConfiForms to try to calculate the field, and for numeric/currency fields that will attempt to sum up the values that were found
- Attempting to improve ConfiForms attachment handling as per advises given by Atlassian in
Jira |
---|
server | Atlassian JIRA |
---|
serverId | 144880e9-a353-312f-9412-ed028e8166fa |
---|
key | CONFSERVER-69074 |
---|
|
(to avoid conflicts with Collaborative editing)
Version 2.25.1
- Fixed issues with migrating (to cloud) forms data that have non-latin names
- Fixed issue with labels auto-align option set in ConfiForms Registrations Control (FormView) macros
- Fixed issue with double rendering of the template in ConfiForms emails (IFTTT to send emails)
- _previousState is now accessible directly through ConfiForms Field macros (not only through [entry._previousState]) - if it exists in the context for the current record, see where it exists Virtual functions
Virtual function to remove items is enhanced to work better on arguments given as CSV (asList). An example below that removes options from "choice1" field that already being selected and stored in choice1 and choice2 fields
Code Block |
---|
id.getOptions(choice1).remove([entry.choice1.transform(id).asList]).remove([entry.choice2.transform(id).asList]).asList |
similar approach to create a filter dynamically (filters OUT choices from choice1 that are already used in fields choice2 and choice3). In these examples our choice1,choice2,choice3 fields are of the same structure and type
Code Block |
---|
choice1:[entry.id.getOptions(choice1).remove([entry.choice3.transform(id).asList]).remove([entry.choice2.transform(id).asList]).join( OR choice1:)] |
...