Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This validation is possible to automate in ConfiForms by using the "ConfiForms Field Definition Rules" macro and using it's "Action" selected to "Validation Rule"

 


Info

If you need to have 2 dates together consider using "Date Interval" field type in ConfiForms. Very useful when used in ConfiForms CalendarView

...


Let's start with a simple form.

...

The configuration for fields is straightforward:

Same for "endDate" 


So the form looks like this on the page:

...

  • we set up this rule to execute on the "endDate" field
  • the condition is set to be dynamic, meaning that it will get the value for "startDate" field from the current record and will compare it with the value of "endDate"
  • Message is set to be "Hold on!"
  • And the most important bit here is to add a validation rule when condition is met, and that is "." which will match anything.
  • This means that when the condition is met, and endDate is before the starDate then run the validation rule which will match ANYTHING (as . in regular expressions matches anything). The message will be shown. When condition is not met the validation rule is not executed... and the message will not be shown (the record will be valid)

...


That's it. It is true that it has a small trick, but here is the hint:

Info

Define a condition that when met will mean the data is not correct and add a validation rule to match everything (using dot ("."), without brackets and quotes) to fire the match and show the message to user

...


Storage format (configuration) for the whole solution:

Expand
Code Block
<ac:structured-macro ac:macro-id="cd6b5bbb-c91c-4cab-aa6a-b7c903e1246e" ac:name="confiform" ac:schema-version="1">
  <ac:parameter ac:name="formName">formWithDates</ac:parameter>
  <ac:rich-text-body>
    <p>
      <ac:structured-macro ac:macro-id="2cd071cd-0ac7-4152-854b-f3b6610cbc31" ac:name="confiform-field-definition" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">startDate</ac:parameter>
        <ac:parameter ac:name="fieldLabel">Start Date</ac:parameter>
        <ac:parameter ac:name="type">date</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="03a9a452-574f-4e67-9f98-7e71dc5bcddb" ac:name="confiform-field-definition" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">endDate</ac:parameter>
        <ac:parameter ac:name="fieldLabel">End Date</ac:parameter>
        <ac:parameter ac:name="type">date</ac:parameter>
      </ac:structured-macro>
      <ac:structured-macro ac:macro-id="004f84b4-a0af-44c6-8793-c7bb06bdd492" ac:name="confiform-entry-register" ac:schema-version="1">
        <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
        <ac:rich-text-body>
          <p> </p>
        </ac:rich-text-body>
      </ac:structured-macro>
      <ac:structured-macro ac:macro-id="d506bcd8-ab88-4845-81b9-7dda48fd7247" ac:name="confiform-field-definition-rules" ac:schema-version="1">
        <ac:parameter ac:name="condition">endDate:&lt;[entry.startDate]</ac:parameter>
        <ac:parameter ac:name="fieldName">Hold on! End date is expected to be AFTER the start date</ac:parameter>
        <ac:parameter ac:name="values">.</ac:parameter>
        <ac:parameter ac:name="action">Validation rule</ac:parameter>
        <ac:parameter ac:name="actionFieldName">endDate</ac:parameter>
      </ac:structured-macro>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>

 

 

...