Release of REI3.10
It´s finally time to release our largest feature update so far - REI3.10. Let´s have a look at all the features and improvements, starting with...
Favorites
This feature allows users to store forms for fast access. But that´s just part of it. The same form can be stored as a favorite multiple times, allowing you to create named shortcuts to important records. Or have different filters active or columns visible on the same list - very useful to power users that regularly switch between views.

Menu tabs
When applications become large, making a navigable menu can become a challenge. In REI3.10 we introduce menu tabs. Every application menu can now be separated in multiple tabs - by topic, user role or whatever criteria you choose.

Tabs cleanly separate different areas of your application. They are visible when a user has access to at least one menu entry within a tab.
Barcodes & QR codes
Often requested and now finally part of the platform: Barcode & QR code handling. By adding barcode/QR code attributes to a relation, you can start scanning, generating and displaying these in REI3.

When scanning codes via camera, not only data but also the code format will be stored. Attributes and field inputs are able to work with different formats, allowing for a mix of different codes for things like serial numbers, EAN, UPCs and whatever else.
Codes can be displayed on forms and lists, printed when clicked on and, when processed for PDF generation, even added to complex documents.
Getter filters for APIs
A feature sorely missing for many API use cases: Being able to apply filters on GET calls. REI3.10 now allows for adding unlimited URL parameters, to be used as filter criteria.
New input display option for number inputs
While we do not have number inputs that would make a bookkeeper happy, we´ve introduced options to optimize our inputs. Aligning input fields together with the monospace option and numeric length settings from the last releases, numeric inputs can become much more readable.

New rating display option
A small but useful addition: Assign a value to a number attribute via a rating input. Especially nice for priorities or feedback scores.

Rating display options are available in field inputs as well as all general views.
New display option for booleans
So far, booleans were always displayed in lists as either true/false or an ok/not-ok icon. While this correctly displays their value, it looks rather ugly in some use cases - especially if multiple booleans are involved. While we have not completely redesigned boolean handling, we´ve added a column option to display a specific icon only if the boolean is set to TRUE.

This helps in cases where values are relevant only when positive and, together with specific icons, can give a much better understanding of what a boolean value is expressing.
Apply data settings via form states
Another important feature: You can now manage the data settings for many fields (lists, calendars, Gantts, etc.) via form states. This means that you can enable/disable things like the 'New' button on list fields, or the 'open record' shortcut on relationship inputs. No need to duplicate list fields just to have different data settings for different users.
Persistent field settings
An old limitation of ours was that all user choices regarding field settings were only ever stored in the browser cache. Change column order? Set new filters? Gone if you switched browsers or cleared the cache. In REI3.10 we´ve implemented a persistent storage system, which will store these kinds of choices permanently.
Two important notes: First, because this is a completely different system, the old choices will not be taken over. You will need to apply your choices once more to persistently store them. And second: Because views on mobile devices, with their smaller screen space, are so different to PCs, these choices are separately stored for mobile. What you do on one device type will therefore not affect the other.
Reworked list columns
Another technical limitation we´ve finally found a fix for: List column sizing. List columns so far could be defined with a max-size. This would however only be applied if there were other columns taking up enough space. This made it difficult to build good-looking lists, especially when their were only a few columns.

This is now changed. List columns will now respect their max-size, not growing larger but still able to shrink when necessary. Be aware that batched columns will use the total width of all included columns as their max-width.
This change will affect existing lists, so please take a look at your lists to see if they need some adjustment.
Making complex form states easier
On complex forms, handling states can be a hurdle with dozens of conditions and effects that can overlap. With REI3.10 we´ve added the option to use the result of one form state as the condition for another. This enables base-states (such as 'User has write permissions on current record') to be re-used in multiple, other states. This can significantly reduce the number of repeated state conditions and with that avoid potential errors.
Be aware however that there is the potential of creating loops, where one form state is the input of another, which is the input of the previous form state. To avoid potential system slow downs in these cases, we´ve limited the reference depth to 10.
Sub join filters
A good feature for people with SQL background: You can now apply filters on joins directly. This allows for some queries that were previously impossible. It also makes it much easier to join a 1:n relationship.
Filtering joins also can have an effect on performance, especially when relation policies are used. Filtering out results before they are being filtered again on the main query, can speed up lookups in some situations drastically.
More smaller features and improvements
- A session start function is now available to initialize values when a user logs in.
- Collections, when used as values in menus or the header, can now show the total sum of all rows instead of a single value. Removes the need to keep separate collections for values & totals.
- A new option allows for hidding input elements for iFrame, drawing and the new barcode field inputs.
- A new user setting allows to align form actions left, right or center.
- Large image previews can now be enabled in list columns and other views.
- Filters can now use Regular Expressions to filter out results.
- Users can now set any list view to auto-renew. The Builder setting now serves as a default.
- The instance function 'form_open()' now offers the option to replace the current browser history entry.
- A 'file_unlink()' instance function was added to remove hardlinks to files attributes.
- The amount of visible files/thumbnails is now controllable via a column option.
- Field default values can now be set via dropdown in the Builder, such as the current date or TRUE/FALSE values.
- The admin panel now displays a warning live, should the users name or email address already be taken.
- The user UI in the admin panel will now display a preview URL for public logins.
- Relation properties in the Builder were moved to their own pop-up form for easier handling and hotkey support.
- Almost all frontend UI elements were updated to address known issues and make inputs feel more consistent.
- Variable fields can now be set to readonly/required via form states.
- Query inputs now offer an 'expert' toggle. This helps reduce the amount of visual clutter for seldom used options.
- Portable versions of REI3 can now run on a fixed web server port, defined in the configuration file.
- Field values are no longer loaded, if they are placed in a currently invisible tab. This reduces the amount of data requests, quite heavily in some cases.
- Variable placeholders now show their input value type in the frontend function editor.
- The richtext editor (TinyMCE) will now offer labels and help in supported languages, such as Italien, Hungarian, Simplified Chinese, and so on.
- Form action buttons will now be collapsed if the screen space is insufficient.
- Gantt groups will now be sorted by the query sort definition. Before they were sorted by the attribute values assigned to the group name.
Upgrade notes
As always, these are the general upgrade steps:
- On Windows: Run the installer.
- On Linux systems: Stop the service, extract the latest release, replace the
r3
binary, start the service.
Thank you all for your continued support and feedback. For the full list of changes, take a look at the technical change log.