v8.0

Docs available for setting up a local Docker dev environment!**

Discuss in the forum

Changes since 7.4…

For users - people who fill in forms, search lists, view reports, etc

  • A new option at the bottom of lists, to “Hide Repeating Data.” This is useful in cases where the same values appear over and over making the table hard to read.
  • Significant performance improvements in saving derived values
  • On some systems, users would suddenly be back at the login screen seemingly for no reason. This has been eliminated in all cases.
  • You can now sort by the Creator’s Groups column

For creators - people who make forms, configure lists and reports, etc

Formulize 8 has a streamlined admin experience:

  • A completely redesigned admin UI for managing forms and accessing their settings, including an optional Click and Drag UI for organizing forms and creating connections
  • No need to create relationships anymore. Adding a linked element or a subform element to a form is all that’s required to connect forms. Everything else happens automatically now.
  • Any form can be used as a subform, you don’t need to setup the relationship first.
  • You can create a new form when making a subform element, you don’t need to create the form first.
  • All forms have a singular and plural version of their name automatically generated, and you can edit them to your liking. These are used elsewhere in the admin UI, and in screen titles and menu links.
  • Renaming a form will also rename any screens and menu links that are based on the simple name of the form. If you’ve edited any screen titles or menu links, those will be unaffected.
  • All connected forms are always available in new screens, no need to create and specify the relationship. Existing relationships still exist and are used in existing screens. New relationships are still possible if you need to focus only on specific forms on a specific screen.
  • You can specify which element is the Principal Identifier for each form. The PI is the element that gets linked to automatically when certain connections are created, and the PI is sometimes used automatically as the default column in lists.

Other Formulize 8 improvements:

  • Derived-value elements will update live if you give them display conditions based on the elements they depend on. ie: if you have an Age derived value, that is based on a Birth Date element, and you put a display condition on the Age to only display if the Birth Date is not {BLANK}, then the Age will be updated live on screen whenever the user selects a Birth Date.
  • Form screen pages can refer to other form screens, so you don’t have to repeat configuration you have done elsewhere if a page of one screen is supposed to repeat the elements that another screen is already setup to use. If the referenced screen has multiple pages, all those pages are included when the screen is displayed.
  • Form screen pages can be generated from PHP code instead of picking form elements.
  • Checkbox elements now properly support alternate display fields, ie: if you link to product name you can choose to display product name and product price as the value in the element
  • A new search type for columns in lists: a dropdown filter based on excluding the selected value. This way, you can select all the entries that do not have the selected value.

For app developers - people who build applications, use the API, etc

Formulize 8 has a streamlined admin experience:

  • All connections between forms are now tracked automatically in a relationship called the Primary Relationship. It has the id number -1 and is used as the default relationship for all screens. Creating a linked element, a subform element, or manually specifying a connection between forms, updates the Primary Relationship automatically. Other relationships can still be created if you want to focus on just certain connections in certain situations.
  • The display of relationship details is dramatically improved for readability and easier comprehension

Other Formulize 8 improvements:

  • Subforms can have display conditions now, like any other element
  • You can specify how many rows should be displayed at once in a subform element, and move between pages, like in a list
  • If you’re setting up conditions involving an element that stores multiple values (like checkboxes), you can now use the equals operator instead of having to use LIKE
  • Formulize Preferences page has been completely reorganized
  • There is a preference for enabling/disabling the Printable View buttons globally. If it off by default on upgraded systems. When this is on, the Printable View buttons can be controlled in the screen settings.
  • There is a preference for turning on the revision history setting for all forms globally, so you don’t have to manage it per form.
  • Revised API functions:
    • gatherDataset (instead of getData, but getData still exists)
    • getValue (instead of display, but display still exists)
  • The new getValue function can also be used to get the raw value of an element as found in the database. See the raw parameter in the documentation.
  • Concurrent processing of the same queue items is disallowed. Instead, the prior queue run is allowed to finish by itself. If a queue has been running for more than 10 minutes, a restart can be attempted.

For core developers - people who work on the Formulize code base

  • You can now set PDO options via a constant in the trust path file, called SDATA_DB_OPTIONS. Set an array of options to pass to PDO and they will be used in your database connection. ie: define('SDATA_DB_OPTIONS', [PDO::ATTR_PERSISTENT => true]);
  • PHP 8.1 or higher is required. Certain string handling operations will not work as expected on PHP 8.0!
  • Many notices and warnings have been fixed/removed

And many more little fixes and improvements!


Don't want to miss the next one? Join the mailing list.