Page tree
Skip to end of metadata
Go to start of metadata

This is the documentation for ConfiForms Server/Data Center app


You cannot downgrade from version 2.x to version 1.x automatically (without manually re-importing datasets with recovery APIs)

Upgrading from 1.x to 2.x is done for you automatically, with data migration. See release notes for the version 2.0.1

We advise you to take extra care with upgrading to version 2.x+ from 1.x branch and test your form configurations in your test environments first, before upgrading your live environments.

If you have any questions about upgrading to ConfiForms version 2.x or have any issues, please contact us via Support Request Form


See also Known issues

Development versions could be found here: http://vertuna.com/builds/


Since ConfiForms app version 2.x we will publish release notes here 

 Development plans...
  • (Smart) multi row field - new field type to help with "inline" creation of master-details structures
  • "ConfiQuery" field type to help you to link other form's data and associate it with a particular field/row in your current form
  • New ConfiForms IFTTT action Rename attachment 

Version 2.9.1 (development)

  • Transposed view for TableViewMerger macro

Version 2.9.0

  • Fixed performance issue with Confluence indexing when forms using web-service and/or database based fields
  • Rendering performance and memory consumption improvements. Less buffering while rendering, results are now streamed to clients a lot faster and earlier
  • Fixed issues with import API used with XLS/XLSX files
  • Improved export to Excel to export non-numeric data stored in "numeric" fields as text values
  • Fixed issue with inline edits when the view macro is set to reference a form on a parent page via @parent 
  • ConfiForms EntryView now support a parameter to allow JavaScript function to be called on "view" for deeper integrations 
  • Improved extensibility of ConfiForms to customize printed form's UI


function onCFBeforePrint(content) {
}


You can override it for example like this

onCFBeforePrint = function(content) {
   alert('The form is about to be printed with the following contents: ' + content.html());
}


Version 2.8.3

  • Fixed issue with incorrect focus on the form when form has rules
  • New service to help with data migration (part of Migration Assistant). Helps to analyze what is stored under page/multi-page/attachment picker and file field types in ConfiForms

Helps you to see what version of the attachment is used by ConfiForms record, what page is referenced and it's internal IDs and attributes

/ajax/confiforms/rest/storage-details.action?pageId=819201&formName=f&fieldName=mypage

- pageId: where the form is defined
- formName: name of the form
- fieldName: (optional) to limit the output to analyze only the specific field and it's data

  • Improved support for form's having their names in non-latin characters (not recommended, please try naming your forms using latin characters with (or without) numbers)
  • Introducing "Migration Assistant" - experimental feature to help you with data migration between different servers, and fixing the "broken" references to external resources (pages/blogposts) and files

Option needs to be enabled in the app's general settings first and then can be accessed from any form's Admin UI



Version 2.8.2

Version 2.8.1

  • Performance optimizations to render "link", "attachment" and autonumber fields quicker
  • More strict validations of IFTTT configurations (not allowing certain IFTTTs to have inner IFTTTs, as it is simply incorrect)
  • An option to disable ConfiForms IFTTT macro body parsing as Velocity template (ConfiForms plugin configuration)

Version 2.8.0

  • Fixed issue with missing auto-number field value when exported to CSV
  • Improved export to non to include "action button" field into the output
  • ConfiForms IFTTT Integration Rules macro with action to "Delete ConfiForms entry" (by filter) now supports the parameter to bypass record ownership and permissions and still delete the record
  • Improved free text search for autonumber fields
  • Fixed issue with showing "view restricted" fields of certain types under certain configurations
  • Fixed issue with not working "inline add" enabled for CardView
  • Improved inline edit for the views when incorrect (non existing) field names are configured in the views
  • Fixed issue with ConfiForms IFTTT rule to remove View/Edit permissions on the page
  • Fixed issue with TableViewMerger and inline search, when TableViewMerger has own filter initially set
  • Fixed NPE in wiki-markup version of ConfiForms Registrations Control (FormView) when used with evaluation license

Version 2.7.5

  • Backported support for ConfiForms version 1.x syntax when setting field's values to support spaces around & (like field1=value1 & field2=value2) ← strongly not recommended to use, but is supported for backward compatibility

Version 2.7.4

  • Enhanced ConfiForms free text search to include "rich properties" into the index. This needs to be enabled in the corresponding "view" via the following parameter

  • Fixed issue with "inline add" for form's non-admin users
  • Fixed issue with links to images inside IFTTT macro body when link is given to embedded image

Version 2.7.3

  • Hotfix to address issues with Confluence 7 changes in content indexing

Version 2.7.2

  • Improved indexing of ConfiForms contents, specifically "rich properties" fields (searchable via Confluence search)

Remember that you need to allow export and search on your ConfiForms Form (Definition) and you form shall not be set to shown only own records to non-admin users. Also you shall have ConfiForms views built over your form. As Confluence search index is disconnected from ConfiForms data then you need to make sure you inform Confluence about the need to reindex the contents - This can be done with the help of ConfiForms IFTTT Integration Rules macro with action set to "Force page to reindex". Please be aware that this action only suggests Confluence indexer to index the page, and actual indexing might take a while to start and complete

Version 2.7.1 

  • Fixed issue with Edit Controls macro inside the ConfiForms CalendarView when placed on a separate page
  • Improved TableViewMerger "flatten records" to correctly transform multi-value fields, such as Jira multi-select, User multi-select, Insight object multi-select to single value fields of the respected types
  • Improved support in ConfiForms Rules for Field Definition macro with "Validate" action configured for multiple fields at once
  • Fixed regression issue with user lookup (in ConfiForms user fields) 

Version 2.7.0

  • New feature to support proxying the requests in Dynamic dropdown (database and web-service) - this feature dramatically improves the performance (no need to preload the data) and helps you to integrate external services that provide "lookup functionality".  See tutorial on Using use proxy setting in dynamic dropdowns

Version 2.6.1

  • Improved support for parsing form's configurations from user macros 
  • New Field Definition Rule to help with setting custom label on a field, conditionally
  • New IFTTT action to generate new sequence number based on the rules/filters you set - please note that this is an experimental feature and is not yet suitable for use in highly concurrent environments (could generate duplicates)! Configuring ConfiForms IFTTT actions#Generatenextnumber
  • Improved validation rules support in quick actions, quick enrol and quick vote
  • Usability improvements in quick voting control (field type)
  • Improved date/date time fields robustness when incorrect formatting pattern is set

Version 2.6.0

  • Fixed issue with attachment links generated by ConfiForms file type when attachments are stored not on the same page as form definition
  • Fixed issue with edit/view controls macros when used with TableViewMerger macro
  • QuickEnrol (enrol button) and QuickAction (action button) now support field definition rules (previously form definition rules were bypassed by these fields during action processing)
  • Better usability in "comment" field - comment input box is closed after comment has been added
  • New "obscure" function to help you with masking the contents of a field when viewed on the page
  • ConfiForms CardView supports "transpose" view (experimental) 

Version 2.5.2

  • Improved automatic audit logging via IFTTT "Audit" action to include _event field, see Using new Audit IFTTT action
  • Fixed issue with quick enrol and "Enrol button" field type to update correctly the corresponding element

Version 2.5.1

  • New field type to accept and render storage format (as input)
  • Improved handling and reporting of broken field definition rules
  • Improved record locking to lock for a shorter time to improve performance
  • Improved support for complex configuration having different Registrations Control (FormView) macros referencing the same form on the same page
  • Fixed issue with inline row edit and JavaScript error on "enter" to save the record
  • Support for "remove" function (Virtual functions) to accept dynamic parameters (via [entry.field_name])
  • Fixed issue with "replaceWith" function (and general expressions parsing) when used to replace ( and/or ) as parameters
  • CleanView now supports additional parameter to help you to wrap the rendered contents into a wrapper (html, div) - similarly to PlainView

Version 2.5.0

  • Fixed issues with filter expressions using filtering by field together with free text filters (like field:some value AND active*)
  • Fixed issue with attachment links generated by ConfiForms field of type "file"
  • Improved ConfiForms CSS Rules macro to support expressions in conditions to match against the data in current record
  • Fixed issue with "reset" button behaviour in ConfiForms Filter macro having additional criteria set and applied on a view with pre-set filter expression
  • Improved logic for handling concurrent requests on form data inserts

Version 2.4.1

  • Hotfix to address issues with use of Confluence search API to discover form sources dynamically (via CQL)
  • Fixed issue with ConfiForms Field Definition Rules not setting/resetting the value for the "comment" field
  • Fixed issue with ConfiForms Field set to disable inline edit when a ListView/CleanView (already supported by TableView/CardView) is set to enable individual edits (the parameter has been ignored and it was not possible to override the view's setting per form's field - now it is possible)

Version 2.4.0

  • Compatibility with Confluence version 7.0
  • Fixed issue with filtering of multi-user fields (including voting control)
  • Fixed issue with field definition rules (set/reset) applied on field of type "Simple Date"
  • Fixed issue with form's data indexing (when export is enabled for the ConfiForms Forms which should result in the form's data being available for search via Confluence search)
  • Support for ConfiForms IFTTT action to set restrictions now supports restrictions for the user initiating these actions (previously, the user initiating restrictions has been always added as a user having the access)
  • Added support for TableView/TableView Merger macros when used inside the ListViews/CleanViews - inner macro parameters are correctly skipped on out view evaluations

Version 2.3.2

  • Fixed issue with "Reset" button on filter macro to reset the view into original, filtered state and not to show all the records
  • Fixed issue with date/time interval field and incorrect parameter for custom formatting
  • Now custom formats are properly supported by date, date/time and date/time interval fields in ConfiForms
  • "append" and "prepend" now accept dynamically looked up parameters, you can have [entry.field_name] expressions inside the function arguments

Version 2.3.1

  • Fixed regression issue with parenthesis not properly parsed in filters in certain configurations
  • Implemented support for setting up the filter, sorting and limits on sources that are dynamically discovered by TableViewMerger macro
  • Improved "Apply filter based on criteria" when used on non-smart fields - now you can easily implement the logic to reduce the choices in the "selectable fields, such as dropdowns" based on records stored

Version 2.3.0

  • Fixed issue with logging the db/webservice connection credentials in the Confluence log file
  • Added support for own date/datetime format (field can use global formatting pattern by default but users are now allowed to override it with own patterns)
  • Fixed issue with radio/checkbox group fields values that might conflict with other fields, when certain naming convention is used (set value and show/hide field rules were affected)
  • Fixed issue with accessing internal "recordId" value (sequence number that every record in ConfiForms has and that is per form, starts with 1). Record IDs cannot be reused
  • Fixed issue with filters applied on multi-user field referenced through a smart field
  • Fixed issue with filters applied on the fields where values to filter on contain AND and/or OR (case sensitive)

Version 2.2.3

  • Added configuration option to restrict emails to be sent only to the user configured in your Confluence server (Through ConfiForms app settings in plugins list - http://<YOUR_SERVER>/admin/vertuna/confiforms/config.action)

  • Fixed issue with fixing onError event when IFTTT (or form submission) fails and there is an error handling rule is configured

Version 2.2.2

  • Fixed regression issue with logger (too verbose with Confluence default level of logging)

Version 2.2.1

  • Support for date range filters in ConfiForms Filter Control macro, so date and datetime fields can be filtered by range
  • Optimized performance for Jira multi-value fields to fetch issues in a batch
  • Fixed issue with incorrect default logging level (warning was used instead of error, and this is the default level for root logger on Confluence which has resulted in extensive logging of a parsing issues by ConfiForms - current workaround is to set logging level for ConfiForms, com.vertuna package to ERROR)
  • Fixed performance issues when "Validate uniqueness" rule is used with Jira fields

Version 2.2.0

  • Performance optimizations for formula calculations
  • Fixed issue with Jira multi-value field where referenced issues data was unnecessarily loaded
  • Fixed logging level issues (too verbose and warnings were incorrectly logged as errors)
  • Import data API now supports Microsoft Excel formats (97/2007)
  • New Field Definition Rule to set field read-only
  • Fixed issue with IFTTT reporting "null" as form name when in debug mode for cascading IFTTT rules
  • Link field can be set to open links in a new tab / window
  • New ConfiForms IFTTT action to "Create page comment"
  • New context variable _formName is available - Accessing field values and properties#Additionalvaluesavailableinthecontext

Version 2.1.2

  • License check logic has been fixed
  • Fixed issue with not showing the field's values that are restricted for edit, but shall be visible in the view, in the ConfiForms Entry Viewer macro

Version 2.1.1

  • Improved logging of IFTTT rules to include the affected form (useful when you have rules that update fields in the same form or another that can trigger cascading of other rules)
  • New ConfiForms IFTTT actions to remove view/edit restrictions on Confluence pages
  • Support for @self in form:page references, Form example: myform:this is equally valid as myform:@self, and point at the "myform" page located on the current page
  • Improved reporting of license errors - more details, easier to understand the issue

Version 2.1.0

  • ConfiForms IFTTT rule(s) can be set to execute onError. This is especially useful when your workflow results in an error and you want to get informed about the broken flow or want to setup some automation to do instead (when normal flow execution has failed)
  • Search and filtering by string values is not case-sensitive by default (Rolled back a bold change we have introduced in 2.0.38)
  • Fixed CalendarItem to account for context variables
  • Fixed issue with content type "image/jpg" unrecognised as image resource
  • ConfiForms Field can be set to not show if the record matches defined criteria, this is especially useful for action buttons
  • CSS Rules set on fields now properly understand !important flag
  • New IFTTT rule to help with setting up the "Audit" - Data is stored automatically in the form with postfix _log and could be accessed with any ConfiForms View macros (Structure is the same as the original form with additional field added called "_ref", which is a smart field referencing the actual record that this audit record belongs to) See more on Using new Audit IFTTT action page
  • New functions to help with data cleanup: removeCRLFs and removeSpaces
  • Fixed support/conflict for proxies setup and ConfiForms web-service enabled fields
  • Fixed issue with wysiwyg field type removing "size" word from the contents
  • Fixed mouse scroll issue in date/datetime fields
  • TableView and CardView now have an option to group action buttons into one cell/row
  • ConfiForms PlainView macro now can be set to output the wrapping tag around the output - useful when you render table rows and what to ensure the table tag gets added and correct document gets rendered. Supports table, div and "data", to render xml-like output

Version 2.0.38

  • Hotfix to address issue with ConfiForms Filter macro rendering

Version 2.0.37

  • Fixed issue with restricted fields shown when a view is used with a filter macro
  • ConfiForms now exposes a component class (com.vertuna.confluence.plugins.confiforms.api.ConfiFormsStorageComponent) for plugin-to-plugin integrations with the following API
@ExportAsService({ConfiFormsStorageComponent.class})
@Named("confiFormsStorageComponent")
public interface ConfiFormsStorageComponent {

  String findFieldValueById(ContentEntityObject contentEntityObject, String formName, String id, String fieldName);

  RegEntry findById(ContentEntityObject contentEntityObject, String formName, String id);

  List<RegEntry> findByAll(ContentEntityObject contentEntityObject, String formName);

  List<RegEntry> findRecordsByCurrentUser(ContentEntityObject contentEntityObject, String formName);

  List<RegEntry> findRecordsByUser(ContentEntityObject contentEntityObject, String formName, String username);

  void updateField(ContentEntityObject contentEntityObject, String formName, String query, String field, String value) throws Exception;
}
  • Fixed issue with showing pages (multi-page field) when referenced through a smart field
  • Fixed issue with "web service request" IFTTT action not respecting the "silent" parameter
  • asLink function now supports setting up the parameter via entry field's reference, [entry.field_name]
  • Fixed issue with "web service request" IFTTT action when 204 is returned (NPE when reading response stream, which is totally incorrect in case of NoContent response)
  • String matching is now case sensitive in filters!

Version 2.0.36

  • Hotfix to address issue with formula value rendering when recalculation is not needed

Version 2.0.35

  • We have lowered the number of IFTTTs that could be executed during record update/created to 200, to catch the possible infinite loops better and report these cases in a more detailed way
  • Fixed issue with calendar item rendering when a calendar (CalendarView) has own filter set
  • Fixed issue with silent rollback and "impossibility" to delete a record when it references a file field / attachment to an already deleted attachment
  • Formula field which references context variables or other fields from the record is now correctly recalculated in the ListView and in the ValueView
  • Improved handling of expressions containing '.' dots
  • Improved extraction logic of array values from JSON documents

Version 2.0.34

  • Web services backed fields now support connections via application links
  • Better debugging options for IFTTT templates when used as Velocity templates - now the error is reported into the template rendering result if the form is set to debug mode (via ConfiForms Form Definition parameter) and the user using the form is form administrator
  • Fixed issue with filtering of checkbox groups fields when used with ConfiForms Filter macro
  • Improved support for edit restricted fields - now, even if the field is set to be required, but is restricted for current use, it will not be validated as required, but skipped. Also, edit restricted fields are not rendered on the form if the user has no permissions to edit such fields (previously the fields were rendered as read only)
  • Fixed issue with "unique by user" check when forms are used by anonymous users
  • Improved support for current page in smart fields - useful when you setup forms with such fields in the templates (you can reference current page via [entry._page] or [entry._page.id] or via @self. Important! This can be done only by modifying the storage format and is not supported via UI)


Version 2.0.33

  • Fixed issue with CSV export when used with default settings
  • Added new parameter to TableView/CardView to override the default behaviour of fields for "hide if empty" flag when views are used with default set of fields
  • Implemented a way to receive notifications from ConfiForms Form submission routine (by overriding the following JavaScript functions)

    function onCFSubmitStarted(formName){
    
    }
    
    function onCFSubmitFinished(formName){
    
    }
    
    function onCFSubmitError(formName){
    
    }

    You can override it for example like this

    onCFSubmitStarted = function(formName) {
       alert('The form is about to be submitted');
    }

Version 2.0.32 

  • Fixed content rendering issue with markup/markdown field when it is set to use Atlassian markup
  • Fixed issue with requesting "local resources" with "local request forward" via ConfiForms IFTTT actions (web connection request)
  • Fixed error reporting on web-service backed fields (when resource configured cannot be accessed or loaded)
  • Fixed issue in ConfiForms Filter Control with umlauts (non latin characters) used as IDs in multi-select fields
  • Fixed issue with ConfiForms dynamic filter macro when used with checkbox/radio group fields (also fixed the reset button bug with the same type of fields)
  • Fixed issue with using decimal numbers in filtering (for comparison, exact match)

Version 2.0.31

  • Fixed issue with CSV export (not correctly exporting the empty values in custom views)
  • Changes in ConfiForms Filter macro - now single-value dropdowns are NOT rendered as multi-value fields in the filter by default (by default these fields are rendered as single-value fields, as defined in the form). This behaviour needs to be enabled explicitly.
  • Fixed issue with reset value action rule (also affected filter reset) when applied on multi-value fields

Version 2.0.30

  • Fixed issue with "quick action" showing empty message when used together with ConfiForms IFTTT Redirect to URL action
  • Fixed issue with Velocity template evaluation in emails (ConfiForms IFTTT to send email)
  • Support for proxies in web-service connections

Version 2.0.29

  • Added experimental support for NTLM 2
  • Fixed issue with filters having an expression with free text search
  • Fixed issue when ConfiForms ListView has been used within the FormView and fields were shown in the edit mode instead of a read-only
  • Added support for TableViewMerger to show the footer with a label/count for number of records shown

Version 2.0.28

  • Improvements to parameters parsing + bugxing edge cases with parameter names clashing + validation for duplicate parameters to report as errors
  • Improvements to filters to support wildcard filters when used with texts containing AND/OR and () in the names to be filtered correctly
  • Fixed issue with "Copy" button in ConfiForms Edit Controls not showing up for form's non admin users

Version 2.0.27

  • Quickfix to address issue with parameters parsing in fields pre-sets (default values), field definition rules to set field values and ConfiForms IFTTT rules to update/create records

Version 2.0.26

  • Fixed issue with ConfiForms Filter macro using  non-latin symbols used in dropdowns
  • Fixed issue with incorrect parsing of wysiwyg fields resulting in rendering errors and missing contents on a page
  • Added parameter to ConfiForms Form macro to support setting custom messages for the forms that allow only one registration per user
  • Fixed issue with REST API call to create a records with multiple values for multi-select user field
  • Improved parsing of a date/datetime fields for user locales (different to server locale)
  • Improved parameters parsing to support setting HTML in parameters, including "a href" links

Version 2.0.25

  • Fixed issue with complex parameters parsing (when parameter value was an url or something similarly complex)
  • Added new virtual function to "truncWithExpand" - helps you to truncate the value of the field and have an "..." interactive block to make the value expandable on demand 

Version 2.0.24

  • Added auto-mapping feature for Import API, to preset the field mapping selections on CSV file import
  • Field Definition Rule to "Apply filter based on criteria" now can automatically remove the rows from the filterable field what do exist in the current form (retaining only unique rows). See demo: Using filter based on criteria rule
  • Improved setting of parameters routine and added support from & in the middle of the parameter
  • Link field now recognises emails and renders the value with mailto: prefix
  • WYSIWYG field now adds header id's to bring compatibility with Confluence "Table of Contents" macro
  • WebServices Request action in IFTTT macro now can be set not to encode the parameters
  • ConfiForms Dynamic Filter macro now has an option to "auto filter" views (without a need to click on "filter" button)
  • Support for multiple choices when using ConfiForms Dynamic Filter macro and filtering by dropdown fields (and other single option fields)
  • Improvements in Import API (now not an experimental API anymore)

Version 2.0.23 

  • Fixed issue with setting up values for checkbox/radio group fields through the lookup from another form
  • Improved performance of database backed fields up to 10x times in views
  • Fixed issue with high load caused when "view" macros are used in preview mode
  • Improvements in filters to correctly work with numeric decimal values in conditions and in values
  • New virtual function to help to render datetime interval field values in a more compact way when event is within one day (compactDateTimeInterval)
  • Fixed issue when ConfiForms EntryViewer macro was not shown for users who are not owners of the record

Version 2.0.22

  • Fixed issue with missing ownedBy field value
  • IFTTT to delete entries could be set to work with anonymous users (deleting is possible only for anonymous records!)
  • Now by restriction edit permissions on the page you can also override admin permissions for Confluence administrator users (super users)
  • Fixed issue with events not correctly firing on certain definition rules when set one rule is set on multiple fields (in CSV format)
  • Fixed issue with filtering with "apply filter" filed definition rules of smart classifier and database classifier fields 
  • Fixed issue with default view for TableView/CardView when auto-number field was not shown by default

Version 2.0.21

  • Addressing issue with forms set to use "secure storage" for attachments and custom field definition rules - when the custom rule(s) was/were failing, the page to store attachments securely was still created.
  • Addressing issue when deleting an attachment of "image" type was resulting in an error on certain Confluence versions
  • Improved filters to correctly support date/datetime fields when referenced through smart fields
  • Fixed issue related to "view refresh after filter reset" in ConfiForms Dynamic filter

Version 2.0.20

  • Fixed issue with possible deadlocks on configurations involving multiple IFTTT rules updating the same ConfiForms entry or entries inside the same form

Version 2.0.19

  • Fixed issue with IFTTTs max count check when entries are updated via REST API update field method
  • Improved support for multiple fields when setting up the ConfiForms Field Definition rule (now fully supports both, regular expressions, as well as list of fields, separated by comma)
  • Now using relative paths in File field type in ConfiForms
  • Now you can disable edits for specific fields when individual edits for the view are enabled
  • Fixed encoding issue with web-services data (returned content-type was not respected)
  • Enhanced support for complex expressions to fields in CalendarView's grouping field (now you can reference fields connected to your current form through the smart fields and etc)
  • Added reverse rule possibility for "hide if matches" parameter in FormView (Registrations Controls) and Edit Controls macros


Version 2.0.18

  • Fixed issue with view restrictions set on the Edit Controls / Entry Viewer macros (when configured dynamically through the reference to ConfiForms fields - [entry.field_name])
  • Fixed "Validate across the dataset" rule when used with _count, to validate for max submissions matching the criteria
  • Implemented guarding method to limit the number of IFTTT rules executions to 100 per user request to avoid infinite loops the users can create with configurations updating same form and having incorrect conditions defined
  • Now IFTTT to copy ConfiForms data supports setting ownedBy field to empty value
  • Section field supports defining the description property to be shown in addition to section title
  • Fixed issue with Simple date field, when the month names were shown incorrectly on certain dates
  • fixed hasChanged() method - was incorrectly giving "true" value when there was no actual change made to the form data
  • Fixed support for accessing _previousState for the ConfiForms record when used to send email/ in-app notification.

    Example: In a form we have 2 fields: "a" and "b". And want to notify about the change, together with previous values

     <ac:structured-macro ac:macro-id="be9a1667-0b16-470c-8511-951bf66dd733" ac:name="confiform-ifttt" ac:schema-version="1">
          <ac:parameter ac:name="condition">hasChanged():true</ac:parameter>
          <ac:parameter ac:name="action">Send Notification</ac:parameter>
          <ac:parameter ac:name="event">onModified</ac:parameter>
          <ac:parameter ac:name="title">testing hasChanged</ac:parameter>
          <ac:parameter ac:name="who">admin</ac:parameter>
          <ac:rich-text-body>
            <p>
              <ac:structured-macro ac:macro-id="c4def14c-d432-4bb9-86a7-912288fedf71" ac:name="confiform-field" ac:schema-version="1">
                <ac:parameter ac:name="fieldName">_previousState.a</ac:parameter>
              </ac:structured-macro> → <ac:structured-macro ac:macro-id="76a0b38f-4cfc-40a9-9746-993585a122d2" ac:name="confiform-field" ac:schema-version="1">
                <ac:parameter ac:name="fieldName">a</ac:parameter>
              </ac:structured-macro>
            </p>
            <p>
              <ac:structured-macro ac:macro-id="81d4aa93-f85f-48fc-a853-37bcb8375557" ac:name="confiform-field" ac:schema-version="1">
                <ac:parameter ac:name="fieldName">_previousState.b</ac:parameter>
              </ac:structured-macro> → <ac:structured-macro ac:macro-id="840e6523-60d5-4b47-b724-476e6a753ec0" ac:name="confiform-field" ac:schema-version="1">
                <ac:parameter ac:name="fieldName">b</ac:parameter>
              </ac:structured-macro>
            </p>
          </ac:rich-text-body>
        </ac:structured-macro>
  • Introducing new virtual function to help you to format the number in the given locale: formatNumberWithLocale. See more details in Virtual functions

  • Added support for showing number of records under the "view", with configurable label
  • Fixed default label text value for "locked" form

Version 2.0.17

  • Enhanced field definition rule to "validate if exists in another form" to be able to check the reverse condition easily (when record matching the criteria given does not exist in another form)
  • Improved discovery logic between TableViewMerger and Filter macro (on some configurations the filter was applied on the first TableView found, and not on the whole TableViewMerger)
  • Improved IFTTT to create/update the ConfiForms entry to support setting the ownedBy field to empty on update/insert
  • Fixed NPE with license check routine on complex configurations involving ConfiForms IFTTT macros when ConfiForms is used with evaluation license

Version 2.0.16

  • Fixed issue with setting values for checkbox group fields when this field's values are only numeric (was calculating the sum, instead of actually setting the values from the rule)
  • Fixed NPE with ConfiForms Edit Controls macro on certain form configurations
  • File field now supports referencing "always latest" version of the attachment. Good for cases when an attachment associated with ConfiForms field gets updated and you need ConfiForms record to track that change and point at latest version of this attachment
  • Support for equality check between record's field values in filters

    Example: 
    A form with 2 fields a1 and a2 and we want to show in a table ONLY the records where the value of field a1 is equals to a2
<ac:structured-macro ac:macro-id="d860f6a8-91e0-4b60-ac8b-f9d77f53aa33" ac:name="confiform-table" ac:schema-version="1">
  <ac:parameter ac:name="formName">f</ac:parameter>
  <ac:rich-text-body>
    <p>
      <br/>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>
<p>only equals</p>
<ac:structured-macro ac:macro-id="bcc29516-fa5c-46db-8a0a-4ff1248285e0" ac:name="confiform-table" ac:schema-version="1">
  <ac:parameter ac:name="filter">a1:[entry._func.asEntryRef(entry.a2)]</ac:parameter>
  <ac:parameter ac:name="formName">f</ac:parameter>
  <ac:rich-text-body>
    <p>
      <br/>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>

  • Support for password fields in filters (ONLY exact matches)

Version 2.0.15

  • Added support for using ConfiForms Field macros inside the ConfiForms IFTTT when sending emails/notifications on "delete" event
  • Improved support for ConfiForms Field Definition Rules when used with Datetime Interval field
  • Fixed issues with data migration routine from version 1.x to 2.x (issues with possible duplicate auto-number values)
  • Improved "fix-storage" service (see below for parameters) to handle duplicate record ids (and fix them)

    [YOUR_CONFLUENCE_SERVER_URL]/ajax/confiforms/rest/fix-storage.action?formName=<FORM_NAME>&pageId=<PAGE_ID>
  • Added support for custom form dialog initialising scripts when using edit record and form's main layout is used
  • Fixed issue in sorting of date/datetime fields when custom virtual functions are applied in sort expressions
  • Fixed IFTTT parameters to use current page when page is not specified (as per documentation)


Version 2.0.14

  • Fixed bug with field definition rules not firing when configured on the "Simple Date" field
  • Properly escaping scripts from "InfoPanel" field type default value
  • Added "simple" type for "InfoPanel" to render the field value as simple, read-only view (without any styling)
  • Fixed strong dependency on the Workbox plugin - now ConfiForms works even if this plugin is disabled (ConfiForms FAQ#Icouldnotenabletheplugin(Pluginsaredisabledduringstartupduetounsatisfieddependencieserrors))
  • Fixed issue with Add/Remove page label (attachment label) when current context was not properly propagated and _page parameter was not available in the context when used in these IFTTT actions

Version 2.0.13

  • Fixed regression issue with smart fields not showing values correctly in views
  • Optimized filtering by ownedBy and other user/multi-user holding fields to perform 4-5 times faster
  • Fixed issue with REST API representation of multi-value fields, especially comments and file/attachment holding fields
  • General initiative to remove XSS and sanitise input and output where possible and appropriate

Version 2.0.12

  • Officially approved by Atlassian version for Data Center!
  • Optimized logic for retrieving field's properties. Our tests show the rendering performance has been improved 50-75%, in some cases 100%. Affects all the "views" macros, as well as filters and sorting
  • As per request from Atlassian we now set the default limits on the number of records rendered by ConfiForms views. The default is 500 records, you can change it in macro properties parameters or set to "NO LIMIT". 
  • Fixed issue with import API for importing users list into user's multi-select field
  • Fixed issue with escaping the HTML input while generating the email message with IFTTT, which has caused problems with later parsing and including attachments properly
  • Support for wildcards (*) in navigation instructions when applying it on a JSON input. A wildcard means the first property in JSON will be taken 

    Why? Consider this JSON example. Property values can easily change here, but the structure itself is preserved

    {
      "return": [
        {
          "somehostname01": {
            "file_|-/etc/ssh/sshd_config_|-/etc/ssh/sshd_config_|-managed": {
              "comment": "File /etc/ssh/sshd_config is in the correct state",
              "pchanges": {
                
              },
              "name": "/etc/ssh/sshd_config",
              "start_time": "11:01:54.394381",
              "result": true,
              "duration": 21.685,
              "__run_num__": 0,
              "__sls__": "abb.sshd",
              "changes": {
                
              },
              "__id__": "/etc/ssh/sshd_config"
            }
          }
        }
      ]
    }

    Here is how you can take the "comment" field value

    j.asJSON.return.*.*.comment

    which reads to, take the value of a "j" field, transform it to JSON, then get the first property value, then get the first property of a returned value and then lookup for the "comment" property value


  • Support for "cf_force" parameter in URLs while creating filtered views. See more: Creating links to filter views from request parameters - url
  • Fixed issue with emails generated by IFTTT where file holding fields were used to show the other properties of the file (were not visible on rendered email, which is now fixed)
  • Fixed issue with incorrect escaping of the data while importing with Import API

Version 2.0.11

  • Fixed issue with removing attachments when a record with file/attachment field get's deleted
  • Fixed issue with storage auto-migration from ConfiForms version 1 to version 2 when content is re-indexed (which has caused issues due to read-only transactions used by the indexer)
  • Fixed issue with null pointer exception thrown when IFTTT was processing onDeleted events and IFTTT actions were using ConfiForms Field macros (sending email on when a record gets deleted, etc)
  • Implemented support for READ-ONLY mode in Confluence. ConfiForms becomes READ-ONLY as well.

Version 2.0.10

  • Implemented support for | in link field type, to allow setting the labels to links
  • Rules for text fields are now applied on keypress (keyup), and not on blur - this allows us to have a more responsive user experience
  • User field profile is always loaded
  • Support for user names having a spaces for multi-select user fields in ConfiForms
  • Fixed minor issue with cache initialization for data loaded from JIRA (Issues and Insight objects)
  • Introduced "remove" virtual function to support the removal of a substring or element (in case of multi-value field) from the values
  • Connection timeout for web-services connections is set to max 20 seconds
  • Fixed issue with ConfiForms Filter macro incorrectly transforming all the fields to dynamic dropdowns
  • Additional service to help with autonumbers in forms after migration (if migrated from ConfiForms version 1.x to ConfiForms version 2.0.8 or lower)

    [YOUR_CONFLUENCE_SERVER_URL]/ajax/confiforms/rest/fix-storage.action?formName=<FORM_NAME>&pageId=<PAGE_ID>

    The service makes sure there are no gaps in the records and all the missing / deleted "records" get also migrated carefully. 

  • Fixed Persian Date field bug not showing correctly the date stored (when in edit mode)

  • Fixed issue with incorrect attachment version in presentation when used with "file" field when an attachment has multiple versions
  • Fixed issue with showing file field's value when an attachment referenced has been deleted
  • Added support to ConfiForms IFTTT to send emails with field value changes. The following constructions (inside ConfiForms IFTTT macro body) show how to check for changes in fields "t1" and "t2". And only in case the value has been changed it will be printed (in this example together with it's previous value)

    #if(("[entry.t1]" != "[entry._previousState.t1]"))
    [entry.t1] [entry._previousState.t1]
    #end
    
    
    #if(("[entry.t2]" != "[entry._previousState.t2]"))
    [entry.t2] [entry._previousState.t2]
    #end
  • New feature to help with setting up customer JavaScript functions when form is loaded (dialog shown) in ConfiForms Registrations (FormView) Control macro
  • New feature to support setting up custom JavaScript functions for ConfiForms Filter macro to execute on filter form load and on filter applied
  • Fixed performance affecting issue with "infinite loop" when specifying broken/incomplete expressions in Formula/Calculated fields

Version 2.0.9

  • Improvements in data migration for forms using auto-number fields and have missing rows (deleted rows)
  • Fixed issue with User fields not showing profile pictures
  • Fixed issue with conditionally shown Edit Controls in TableViews
  • Better reporting of license incompatibility when used on environments not matching the license type
  • Compatibility with upcoming Confluence 6.13
  • Fixed issue with TableViewMerger macro form/file naming for exports

Version 2.0.8

  • TableViewMerger macro dynamic sources discovery now supports forms defined in blogposts 
  • ConfiForms views placed on external pages/blogposts now support forms defined in blogposts
  • Fixed issue with user's data caching on Confluence version 5.7.x
  • Fixed configuration issue with ConfiForms Field Definition Rule when rule to "Look up and set the value from WebService" has been used
  • Optimized filters by page and user fields, when simple expressions are give (to match agains page id or username)
  • New virtual function "randomInt(minVal)" - Virtual functions

Version 2.0.7

  • Fixed regression issue with [empty] filters applied on user fields
  • Fixed issue with rules applied on the same fields, when ConfiForms started to calculate the sums (when numbers only were given as values), instead of applying values separately
  • Support for CSS and message to show when results are empty for TableViewMerger macro
  • Edit controls and viewer controls rendering optimizations when no dynamic parameters were given
  • Optimizations in how user fields are fetched
  • Fixed backward compatibility issue with Confluence 5.5

Version 2.0.6

  • Fixed regression issue with page creation via IFTTT when scripts were not correctly loaded on a pages created with automatic ConfiForms ListView
  • Support for multi-line field values in field definition rules, when setting the values. Use \\n to form a new line in parameters to set (for values)
  • Fixed regression issue with Datetime interval fields not rendered on a CalendarView
  • Performance optimisations in filters when used on user fields
  • Performance optimisations in ConfiForms Filter macro when used with a setting to show only relevant choices
  • Fixed issue with showing/hiding fields in views when it has no value and field was given with virtual function
  • Experimental service to export ConfiForms data as RSS feed

    https://<YOUR_SERVER>/ajax/confiforms/rest/export-to-rss.action?
       pageId=<PAGE_ID>
       &f=<FORM_NAME>
       &feedTitle=<FEED NAME>
       &feedDescription=<FEED DESCRIPTION>
       &feedLink=<FEED URL>
       &entryTitleField=<FORM FIELD TO USE AS TITLE>
       &entryDescriptionField=<FORM FIELD TO USE AS DESCRIPTION>
       &entryLinkField=<FORM FIELD TO USE AS URL>
    
    
    entryTitleField, entryDescriptionField, entryLinkField - could use virtual functions and access any field property your form's field may have
    
    
    Optional parameter: feedType
    Possible values: rss_2.0, rss_0.92, rss_0.94, rss_0.93, rss_1.0, atom_1.0, atom_0.3

Version 2.0.5

  • Re-packaged for data center compatibility (metadata). Version is waiting an approval from Atlassian (https://ecosystem.atlassian.net/browse/DCHELP-387). ConfiForms is already fully compatible with Confluence Data Center, but is awaiting official approval from Atlassian.

Version 2.0.4

  • Recovery API now physically deletes existing records and replaces the dataset contents with what's given (this also resets autonumber sequences in a form). You can also clean up the form completely by uploading empty dataset in a format

    {"data":"<list></list>"}
  • Fixed issue with show/hide container on forms in dialog mode (and when ID is used as CSS selector)
  • Field Definition Rules macro, when used with "Lookup and set value" action tries to "aggregate" the values it receives, and if all are numbers then sums it up. Use of formulas (expressions) in values to set parameters is supported
  • Enhanced service to check forms storage integrity (reporting non-compliant fieldnames)

    [YOUR_CONFLUENCE_SERVER_URL]/ajax/confiforms/rest/storage-integrity.action?formName=<FORM_NAME>&pageId=<PAGE_ID>
  • Fixed issue with Currency field type not validating it's type by default and accepting non numeric values
  • Fields of a text type and similar are now rendered as lookups when used in ConfiForms Filter macro
  • Smart fields now support referencing field values (in addition to referencing records)
  • Introducing "_func" bridge function to enable access to virtual functions through the entry (without using any field). This is sometimes necessary when you want to create complex dynamic filters such as:

    field1:[entry._func.asEntryRef(entry.field2.transform(id).join( OR field1:))]

    This filter, for example, tells to find records where "field1" values match values from "field2". And both fields are multi-value fields

  • timezoneAwareDate and timezoneAwareDateTime virtual functions to format date/datetime as timezone aware dates
  • Cleaner output of emails when rendered and sent though IFTTT macros
  • Attachments picker field enhancement to support showing of all attachments versions
  • Fixed issue with creating pages using ConfiForms when a 3rd party app called "InPlace editor" is installed
  • Added support for "Apply filter" field definition rule to work on attachments picker

    Assuming the field name for "Attachment picker" is "mypicker" and is set to show attachments from children pages, but you want to show only current page attachments (when you put FormView on a child page)
    
    
    mypicker.asAttachment.content.id:[entry._page.id]
  • Fixed regression issue with excessively strict field name validation


Version 2.0.3

  • Quick fix to address too strong check for field names in ConfiForms field names. Non-latin characters in ConfiForms field names are still supported but strongly NOT RECOMMENDED

Version 2.0.2

  • Optimisations in data serialization and deserialization, resulted in reducing the data storage format size up to 30% (depends on the data you store)
  • Data loading speed improved up to 15% compared to previous version (depends on the dataset / form configuration)
  • Field definition rules are processed 30% faster, especially on the configurations with many rules (30+)
  • Fixed issue with the uploading of multiple attachments of the same file
  • Entry metadata is back as a tooltip in CardView/TableView row
  • Fixed issue with IFTTT to send emails containing files having a comma in their names
  • Fixed issue with service URL mapping in web services backed fields when current context variable values, such as [entry._user] and [entry._now] were not correctly applied on the parameter
  • New field definition rules to hide (or show) any arbitrary element on the page by CSS selector based on the condition ("Show/Hide container" action type)
  • Fixed helper tools with providing mapping of database and web-service backed fields
  • Fixed issue with form printing when comments added with a Comment field with "inline comments" enabled were not printed
  • Fixed issue with auto-link generation when a reference to uploaded file is used in the pattern
  • Changed JSON export format for multi-value fields to contain "JSON" value string for the values, instead of "XML"
  • Improved and secured content search indexing for forms - now you need to enable form export  to enable the contents of a form to be searchable. Also, setting the form to "show only own records" to non-admin users disables indexing the contents of a form
  • Fixed permissions issue with Recovery API (accessible now by space admin users)

Version 2.0.1

  • ConfiForms now has a new storage layer, with much faster edit and delete operations. And with faster and less memory consuming search / filtering operations. 
    There are no limits on the dataset size per form. And the size of the record is limited by the number of characters your database can hold in a CLOB type field (ConfiForms limits are 2,147,483,647 bytes)
  • Data migration is done for your automatically when you access the form for the first time. This could take some time for the first load, depending your your dataset size

    There are methods to help you to understand how you data looks like and force the migration via migration APIs if you want to do so (accessible only to Confluence system administrators)

    Storage analysis

    [YOUR_CONFLUENCE_SERVER_URL]/ajax/confiforms/rest/storage-analysis.action?spaceKey=<SPACE_KEY>

    Auto-migration

    [YOUR_CONFLUENCE_SERVER_URL]/ajax/confiforms/rest/auto-migration.action?spaceKey=<SPACE_KEY>

    Storage integrity check

    [YOUR_CONFLUENCE_SERVER_URL]/ajax/confiforms/rest/storage-integrity.action?formName=<FORM_NAME>&pageId=<PAGE_ID>

    (Force)Migrate form's storage via service

    [YOUR_CONFLUENCE_SERVER_URL]/ajax/confiforms/rest/migrate-to-storage-v3.action?formName=<FORM_NAME>&pageId=<PAGE_ID>
  • We advise you to take extra care with upgrading to version 2.x+ from 1.x branch and test your form configurations in your test environments first, before upgrading your live environments.

  • Your tables, rendered with CardView and TableView macros, will look different and use the cleaner styles as provided by AUI - https://docs.atlassian.com/aui/7.8.0/docs/tables.html

  • Your forms look cleaner as well, and also follow the guidelines and styles from AUI

  • ConfiForms is DC ready (approval is in progress)
  • Optimizations in rendering: reducing HTML markup size → faster rendering
  • All the features and changes included in 1.54.x releases, up to the latest 1.54.6, https://marketplace.atlassian.com/apps/1211860/confiforms-data-forms-workflows/version-history#b105004060
  • Data is stored in the database table "AO_CEFA84_CONFI_FORMS_ENTITY", using record per row method.
  • Rows are not physically deleted from the database when you delete a ConfiForms entry, but marked as deleted. Record contents is removed, but the ID and removal date for the entry are stayed. This allows us to "fix" the logic with auto-number re-use when last ConfiForms entry has been deleted (in ConfiForms version 1.x the last number will be reused, which is not the case anymore with ConfiForms version 2.x)
  • Backup and restore DOES NOT back up the values from ConfiForms storage. Use RAW export and recovery APIs to get the data imported