Skip to content

Releases: jegelstaff/formulize

v7.3

28 Apr 15:42
Compare
Choose a tag to compare

Docs available for setting up a local Docker dev environment!

Changes since 7.2...

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

  • Floating tabs at the top of forms, so the tabs are always visible as you scroll
  • Floating save buttons at the bottom of forms, so you don't have to scroll to click Save
  • Images uploaded to forms show thumbnails instead of just the file name
  • Significant accessibility improvements throughout, most noticeably using the native HTML 5 date picker provided by the browser
  • Conditional form elements are processed in groups now, instead of one at a time, so the animation of appearing and disappearing elements is a lot smoother
  • Better handling of going directly to a URL for a specific entry, so that when you leave you properly end up on the right list and stay there
  • Corrected a minor issue that could have caused an "insecure page" warning from your web browser under some circumstances
  • Elements with the value zero will show up properly in the form (previously did not show, bug fixed)
  • If your account does not have an email address specified, we tell you this when you try to reset your password (requires webmaster intervention to change password in this case)
  • Clickable URLs inside lists of entries will now always work when opened in a new tab (they always worked when clicked, but under some circumstances they would show the wrong entry if you copied the link and opened it in a new tab)

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

  • A much more readable list of elements on the admin side
  • Drag and drop sorting of options when editing radio buttons, checkboxes, dropdown lists, list boxes, and autocompletes
  • Drag and drop sorting of the elements listed on the Entries tab when configuring List of Entries screens
  • Improvements to the display of "Tables of existing elements" (grids) so they blend in with regular form elements better
  • "Tables of existing elements" (grids) can display conditionally, like normal elements. The elements contained in the table/grid inherit the display conditions of their container.
  • Elements can now be disabled conditionally, the same as how they can be displayed conditionally. Elements can have a mixture of display and disabled conditions, referring to the same or different triggers.
  • Multiselect autocomplete elements now trigger conditions when users add to the list or remove items from the list
  • Element captions that reference other elements using { } syntax, will have their captions updated when they are conditionally displayed (if the other element is one of the elements that triggers the condition)
  • You can now use { } references to elements in help text, and the row and column headers in "Tables of existing elements" (grids)
  • When you specify which element should be used to sort a list by default, you can also specify either ascending or descending (used to be ascending only)
  • Anonymous users can have a Formulize homepage set, so you can send them to a specific screen through the Menu system if you want
  • Improvements to the Range Slider element, value is more distinct and sliders trigger conditions as well
  • Added an IN operator to the condition specification UI, for display conditions, linked element filters, etc
  • Improved parsing of display conditions, linked element filters, etc
  • No longer necessary to disable CSRF token processing when showing elements inline within lists
  • Subform elements properly use the default screen to display entries, if default screen is chosen (bug fixed)
  • Elements can be assigned a 'datetime' data type in the Advanced tab of the admin UI (Previously just date, or time, but elements could always be assigned any data type directly in the database)
  • In the Anari theme, the masquerade block is shown more clearly, if you are masquerading as another user

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

  • All code editing areas use syntax highlighting
  • New function: displayRichText() - works just like the display() function, but will preserve all the formatting from a multiline textbox that uses the rich text editor
  • New function: displayFileImage() - works just like the display() function, but will convert the URL for an uploaded file into an img tag that shows a 200px wide version of the image
  • viewEntryLink and viewEntryButton are available in Template screens, and you can specify the screen they should take users to in the options for the screen
  • New data handler method: findAllEntriesWithAllValues
  • Updated findFirstEntryWithAllValues to support an array of operators so you don't have to use the same operator for searching for every value you're looking for
  • Element classes now have a getDefaultValue method for specifying the default value when an entry is being saved the first time (existing element types with defaults are unaffected but this fleshes out the class structure for new elements or refactored elements)
  • A history of the notification queue is stored for one week, if you're doing 'notification via cron job'
  • Removed the deprecated "force hidden" setting for elements; this should have no effect other than cleaning up the admin UI
  • If your local development environment is Windows, and you are using SQL dumps from a Linux server to make a local copy of a database in Docker, there is now a special MariaDB .conf file to ensure the dump can be read correctly (the case-insensitive nature of Windows vs case-sensitivity in Linux, made some SQL dumps fail to load properly in a local Docker development environment) - for details, see the /docker/docker-db-help.txt file

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

  • Large scale refactoring of the operations in the displayElement function, and the compileElements function, which streamlines all the logical operations of displaying elements and whether they are allowed, and whether they are disabled
  • Refactored the parsing of submissions from the condition UI so they are all standardized
  • Refactoring the creation of subform entries so that defaults are assigned properly
  • Removed the ancient 'profileform' feature for integrating with XOOPS 2 user profiles prior to ICMS
  • Moved conditional element Javascript to its own file that is included properly
  • Many notices and warnings fixed/removed

And many more little fixes and improvements!

v7.21

28 Nov 07:34
Compare
Choose a tag to compare

Docs available for setting up a local Docker dev environment!

Also...

  • Allow aborting of writing an entry in the On Before Save procedure (return false in the procedure to abort)
  • On Delete procedures now have access to the contents of the entry that was just deleted (variables named after the element handles in the entry)
  • On After Save procedures have a new flag called $newEntry that will be true or false depending if the entry was just saved for the first time or not
  • In the Data Handler class, the findFirstEntryWithAllValues method supports the IN operator. The values must be a valid comma separated set of values that will work in a SQL statement. This means strings need to be quoted.
  • When building a dropdown filter for a list of entries, ignore blank values in the element when compiling the distinct values for the filter
  • If you use an alternate database value for radio buttons, checkboxes, or selectboxes, but show the user a different readable value in the form and in lists, searches for the readable value now work (previously only searches for the database value would work)
  • Better handling of numeric values used in conditions, where they are compared against linked fields (if they don't match a readable value, then they will be assumed to be foreign keys)
  • Fixing layout of non-row subforms
  • Updating the Google PHP API client
  • Various touchups, cleanups, etc.

v7.2

11 Nov 03:43
Compare
Choose a tag to compare

Formulize 7.2 !!!

Now with Docker integration. There is a docker-compose.yaml file in the root, and some other related folders and settings files. Integration is especially automatic in VS Code, including live debugging capabilities with Xdebug. See the developer docs on https://www.formulize.org/developers/ for more details.

Also...

  • If you're not logged in, you will be redirected to your original destination page after you login
  • Much smarter filters You can now use a drop down filter in a list-of-entries for any column, even if the form element is just a textbox. The filter will be made from the unique values entered in that element. Also available: date range filters and checkbox filters.
  • Fixed position headers in lists If your list of entries is long, the headers will stay at the top of the screen as you scroll down the page.
  • Choose how many entries to show per page in lists And this setting is saved with your saved views too.
  • Alternate sorting order for any element If element A doesn't naturally sort in the way you want (maybe it's a derived value of the first name and last name, or it's a mass of HTML and text), but there's another element B in the form that would provide the correct sorting to use, well now you can specify that when users sort by element A, the entries will be sorted using the values from element B.
  • Subform filters Allow users to search through subform entries and limit which ones show up in the list.
  • Flat subforms This new option for displaying subform entries inside their parent form, lets you show entries in the full form, and outside of a collapsible accordion container, so the entire page looks like one large form. This is especially suitable for screens that are meant to be printed.
  • Conditions accept % as a wildcard when using the LIKE operator So you can match things that begin or end with certain text: ie: Starts with%
  • UTF-8 compatibility for file uploads
  • Changes to element handles will propagate to derived value formulas and text-for-display code
  • An on-delete procedure Now you can trigger events when an entry is deleted in a form, in addition to the on-before-save and on-after-save procedures.
  • Improved handling of daylight savings time
  • Improved entry locking/unlocking
  • Fixed a bug in the Find Users feature On the admin side, if your site has more users than fit in the normal drop down list on the Edit Users page, the Find Users option on that page now works to allow you to select people to add to the list, who you can then delete, edit, or masquerade as (which is super useful for debugging user reported errors).
  • A new preference to control how the effects of custom buttons are written to the database If you have custom button effects they will continue to use the old method. If you have none, you should switch this preference to use the new method before you make custom buttons.
  • And many, many quality of life improvements, visual improvements, tweaks, fixes...

v7.11

18 Dec 21:25
Compare
Choose a tag to compare

Installer updated for PHP 8

v7.1

03 Dec 18:56
Compare
Choose a tag to compare

The long awaited PHP 8 compatible version, plus several exciting features, including copying settings and permissions from one group to another.

v7.01

12 Sep 21:36
Compare
Choose a tag to compare
  • Fix for minor DB patch issue, affecting new installs only

v7.0

31 Aug 19:16
Compare
Choose a tag to compare

This is what was on display at the Formulize Summit in Toronto, August 30, and now available for the world to enjoy. Featuring an all new theme, completely mobile friendly.

v6.2

21 May 19:18
Compare
Choose a tag to compare
  • temporary fix for 2fa codes not being read properly in some databases
  • disabling autofill on password reset page, if browser is behaving properly
  • adding support for new tlds to validation logic for the email address form element
  • disabling validation logic for blank phone numbers when the phone number form element is not a required element

v6.1

19 May 22:50
Compare
Choose a tag to compare
  • 2FA code not required for password change when 2FA is off!
  • Improving imports, including by trimming whitespace from data so it is cleaner in the database
  • Restoring line breaks to multiple data points in a single cell in a list
  • Fixing presentation of multiple data points in a single cell in an exported spreadsheet, so they appear in the same cell properly

v6.0

04 May 13:31
Compare
Choose a tag to compare

There's a ton in here, including setting columns for lists of entries straight from the admin page, no saved views required, setting different default views for different groups in the same screen, export/import of settings to synchronize with other installations (like staging vs. live), PHP 7 compatibility (for a while now), two factor authentication...

And more to come!

To install fresh:

  1. upload files to your web server
  2. create MySQL/mariaDB database and username/pw (optional, installer might be able to do it for you depending on permissions on your server)
  3. go to the root of the website in your browser and follow the installation prompts

To update existing install:

  1. backup files and DB,
  2. overwrite the files with these ones (except for mainfile.php and the /install folder),
  3. login and go to the admin side, run the database update when prompted (or go to .../modules/formulize/admin/ui.php?op=patchDB)
  4. click on the Modules menu heading at the top of the page on the admin side and then click the circle arrows to update the Formulize "module"

If you have issues, please contact info@formulize.org

Thank you!