- Implemented update check on first start in case important security updates are available.
- Fixed conversion issue for numeric database type.
- Fixed invalid display of form state condition after deletion.
- Added shortcut to the start page of the running REI3 instance to the start menu on Windows systems.
- Added new command line option: Start with dynamic port.
- Added context filter to log viewer in admin panel.
- Added README to the application directory & Windows installer.
- Implemented welcome message when starting the main REI3 executable without parameters.
- Implemented warning message on login page when HTTP connection is used.
- Updated portable version start script: It will now open on a dynamic port and run in HTTP mode by default. This enables easy access to the portable version (no HTTPS issues) while making it harder to misuse it in production environments (changing port).
- Updated default chart field options: Disabled the source header option, which can cause confusion when working with query results.
- Removed outdated command line option: Set port.
- Fixed chart columns being deleted during transfer when updating chart fields.
- Fixed multiple instances of REI3 blocking each other when the embedded DB is used. Now only one instance may own the embedded DB.
- Last database connection error message is now returned when connection timeout is reached.
- Fixed some special characters in database connection password causing issues on initial connection.
- Fixed lingering database connections blocking schema cache load in some cases.
- Fixed file input field not correctly applying minimum file count constraint.
- Fixed change logs of file input values not correctly displaying.
- Fixed repository update not handling release files correctly.
- Added new data presentation field: charts.
- Added 'update all applications' action to admin UI.
- Added dependency graph to the Builder start page.
- Added relationship graph to the relation view.
- Added instance options for database timeouts for all data access types (HTTP/WS, REST, CSV, ICS).
- Added instance functions: get_role_ids(), has_role() & has_role_any(). These allow easy role checks in functions, including the option to resolve inherited memberships.
- Added field option to show/hide the gantt interval toggle in calendar fields.
- Improved column batch handling in lists: Batched columns can now be hidden individually - max. batch column size now follows combined size of visible columns.
- Improved admin LDAP UI labels/help texts.
- Improved admin login UI: Added save/close actions to login roles
- Improved Builder form states UI: New states are now placed at the top of the list to improve usability in large sets.
- Implemented arrow key based navigation in relationship input fields.
- Implemented file-based application schema cache, which is stored in service worker and has no fixed size limit.
- Implemented context-based cancelation of websocket requests when a client disconnects.
- Implemented multi-file application imports - this can help resolve upgrade issues in complex dependency scenarios.
- Removed unnecessary frontend reload events after configuration changes.
- Removed unnecessary list reloads after bulk deletions.
- Removed global 'app' reference for access to root vue instance.
- Migrated from lib/pq to pgx for accessing the database; lib/pq is not maintained anymore.
- Updated admin & Builder docs.
- Upgraded to vue 3.2.11.
- Upgraded to Go 17.1.
- Fixed form states showing wrong inputs in last entry when saving new states.
- Fixed browser navigation stuck after deleting record in form.
- Fixed non-fullpage calendar fields updating route getters.
- Fixed relationship input shows empty dropdown action header.
- Fixed public login getter not cleanly removed from URL.
- Fixed access cache being renewed with outdated permissions after role assignment via LDAP.
- Fixed logins not being updated from LDAP import if they have no relevant group memberships and auto role assignment is active.
- Fixed roles being assignable manually to LDAP logins with auto role assignment.
- Fixed HTML anchors not working in internal docs.
- Added login forms: Admins can now create/assign records to logins from within the admin UI. Application authors can define forms for login record handling.
- Added mail body richtext display in mail spooler UI.
- Added function to update existing icons in Builder UI.
- Added 'first steps' help window with quick access to application help pages.
- Added platform update notifications for admin users.
- Enabled middle-click navigation on more actions (open/reload records, list rows, gantt/calendar entries).
- Fullpage lists can now recover their previous scroll position when navigating back via browser history.
- Enabled offset selector to admin logs.
- Placed more icons and more descriptive titles to pop-up windows in various Builder / admin UIs.
- Exposed IDs for many entities in the Builder for troubleshooting and to use with instance functions, as in mail_send().
- Increased size of SQL-previews in the Builder UI.
- Updated boolean input field - it now has a separate presentation when the input value is NULL.
- Updated error messages returned to users.
- Updated layout, icons and captions in the admin login UI.
- Updated release packaging, combining web script and style files to reduce load times. Build numbers in output file names will now deny cache attempts after a platform upgrade.
- Upgraded Go to 1.16.6.
- Fixed CC header not being parsed from incoming emails.
- Fixed header color not always updating when navigating backwards through browser history.
- Fixed open dropdowns from input fields not closing when opening other input field dropdowns.
- Fixed 'field value changed' condition bool input not shown in form states.
- Fixed script error when entering field to field comparison conditions in form states.
- Fixed repository UI showing wrong totals in some filter contexts.
- Fixed admin login UI not updating visible records when using the reload action.
- Fixed styling bugs in Builder UI in compact mode.
- Added first integrated application bundle 'Core Company'. New instances can install this bundle directly without internet connection.
- Added form state field condition 'Field value was changed'.
- Added translatable function titles and descriptions. These are now visible in the admin scheduler UI as well as in context help in the function Builder UI.
- Added function schedule interval type: 'once'. This enables one-time migration functions for application upgrades.
- Added instance function 'abort_show_message()' - this enables backend functions to abort an operation while sending a message back to the user.
- Added instance functions 'log_info()', 'log_warning()' & 'log_error()' - enabling application logging from backend functions. Logging level for applications can be defined globally in the admin UI.
- Added user setting: Dark mode.
- Added user setting: Compact mode.
- Added user setting: UI spacing.
- Added customizable company logo URL.
- Updated 'new instance wizard', guiding new admins through available application installation options.
- Redesigned platform theme handling to allow for depth-based fonts/backgrounds/shadows.
- Average column aggregation now defaults to numeric value with two digits after the comma.
- Updated mail_send() instance function - it now allows sending without TO recipients (CC/BCC only mails).
- When presets are deleted only records connected to protected presets are deleted automatically. This follows the idea that protected records are controlled by application authors (for the application to work), while non-protected records serve as sample data that end users can delete or keep using.
- Removed impractical actions from richtext menu bar in mobile view.
- Function schedules now keep their last execution date after an application import, instead of being reset and repeated.
- Upgraded vue libraries (vue, vuex, vue-router, vue-draggable, vue-tinymce, vue-color), REI3 now runs on vue3.
- Upgraded TinyMCE to 5.8.2.
- Fixed PG functions not raising an error on save when entities from non-dependent modules are used.
- Fixed form copy not working for forms with sub query filters on the form query itself.
- Fixed richtext input not updating its interactive elements when field state changes (still showing menu bar when set to readonly and the other way around).
- Fixed tab navigation triggering undesired dropdown activation for relationship inputs.
- Fixed Builder error when deleting field for which query editor was still open.
- Added 'field is hidden by default' indicator to form Builder.
- Updated default value input for boolean attribute fields to accept upper-case 'TRUE' as well.
- Updated Builder UI to recognize trigger functions that use upper-case 'TRIGGER' as return value.
- Updated form navigation to replace invalid records (NULL) with a request to open a form with a new record.
- Fixed missing generic caption reference in Builder UI.
- Fixed IMAP mail retrieval failing for some charsets.
- Fixed invalid inputs (>24h) in time input fields.
- Fixed edge case in Builder UI when assigning a parent module wouldn´t update module parent state - full schema reload is now executed.
- Added automatic renewal option to list fields. Can be overwritten by users on a per-field basis.
- Added rich value presentation to calendar & Gantt events - all display options are supported (datetime, files, gallery, URL, color, ...).
- Added 'richtext' display option for columns, showing richtext values with stripped HTML tags.
- Added 'text length' and 'text wrap' options for columns, allowing fine control over how text values are displayed.
- Added field states to non-data fields. This allows fields like containers or lists to be hidden by default.
- Added 'optional' field state, which can overwrite readonly / required states. Useful in combination with relation triggers, overwriting values that are required but can be provided by backend functions.
- Added schema cache reload events to update concurrent admin logins, enabling parallel work sessions in the Builder.
- Added filter reorder actions in Builder UIs, allowing moving of filter conditions.
- Redesigned application transfer mechanics
- Changes made to applications that were imported into an instance (from file or repo) are now ignored by default when executing an application export. The original, imported version is used instead.
- A new option 'changeable' was added to the admin UI for applications. This option allows the instance to apply changes to applications when doing exports in the Builder.
- Applications from other authors are now being protected from unplanned changes by default (see above). As this was the reason for the export option 'full export yes/no', it was removed. All application exports now always contain all dependencies.
- Removed the automatic version counter increase from the application export. If an application is changeable and the current version has changed, it requires a manual version counter increase before an export is permitted. This makes it more transparent and gives more control when multiple dependencies have changes.
- Replaced permanent export key storage in database with temporary memory storage.
- Updated form states UI
- Form states are now ordered by description text, making states easier to read and allowing for control of execution order.
- Added filter for field references, showing only states connected to a specific field.
- Column (batch) width now also controls table cell values in list views.
- 'Hide on mobile' option now also applies to columns in calendar & Gantt fields.
- Enabled relationship input fields to be hidden without form states.
- Better frontend performance for list views.
- Improved color picker UI in Builder start page.
- Improved schema cache reload behavior, reducing reloading times in some cases significantly.
- Expanded instance.mail object, providing 'from' addresses when fetching mails from the spooler.
- Fixed 'open email/URL' action being visible in list views even if no value was set.
- Fixed slider data field input not shrinking properly.
- Fixed hidden field being shown in change log entries. Even with all fields being hidden, a change log entry is still visible to mark the occurrence of a change.
- Fixed list auto select being executed on non-new records.
- Fixed layout bug in admin UI.
- Fixed form query filters not being correctly handled for sub join updates.
- Fixed category input field of relationship attribute being clickable in readonly state.
- Fixed issue during import blocking application upgrade (index deleted before relationship attribute with auto FK index).
- Removed outdated compatibility fixes for applications before REI3 v1.5.
- Made 'Selectable filters' more flexible. They are now renamed to 'Filter sets' and also available in Gantt and in relationship input fields.
- Extended placeholders for field input default values (formatted date values), see Builder documentation.
- Hide filter set selection if only 1 filter set is available (nothing to select).
- Implemented proper user error message when attempting to delete a protected record.
- Changed to in-line column wrapping for relationship field values, improving readability when screen space is limited.
- Login name is now shown in user settings UI on logout button.
- Improved form navigation by replacing more history entries (case: child record created with parent relationship attribute).
- Improved form navigation by setting full page field arguments (lists, calendars, Gantt) on first form load.
- Made default input field styles (mostly admin/Builder UIs) more in line with form input field styles.
- Fixed calendar not loading if placed as sub-field.
- Fixed calendar navigation not showing initial state when going backwards through the browser history.
- Fixed Gantt field options in Builder UI not setting defaults correctly.
- Fixed relationship field icons not showing when gallery images are used but not available for all records.
- Fixed form getter not overwriting previous default attribute values.
- Fixed form copy not replacing filter set IDs, causing duplicate primary keys.
- Fixed wrong child application being opened from the main header when clicking on a parent entry without start form.
- Enabled handling of join flags for relationship input fields. Even when a target form is defined, the 'create new record' action is now only available when the CREATE flag is set, while opening an existing record requires the UPDATE flag on the base relation.
- Improved application selector in Builder UIs to show nesting.
- Fixed form state definitions not being correctly applied in some cases.
- Fixed missing second slash after protocol part of ICS download URL.
- Fixed bad-input indicator taking up space even if not shown.
- Fixed text emails being sent as HTML, causing new lines to be ignored.
- Added Gantt presentation option for calendar fields.
- Added mail retrieval from IMAP mailboxes.
- Added mail spooler view for admins.
- Added mail attachment handling for in- & outgoing messages.
- Added mail account management for using different accounts.
- Added phone & email display options for field inputs and list columns.
- Added preview to functions to show code body as it would be executed.
- Added formalized instance functions, accessible inside application functions, such as get_login_id() or mail_send().
- Added new permission UI for admins to manage all role memberships for an application in a single view.
- Added new relation triggers variants (CONSTRAINT, DEFERRABLE, INITIALLY DEFERRED).
- Added placeholders for field input default values (currently for time inputs only).
- Enabled date range selection for ICS calendars on a per-field basis.
- Enabled page navigation for full page calendar fields.
- Improved image preview in lists; images will follow column size by default, while falling back to defaults in batch context.
- Placed bad-input indicator that scrolls to bad inputs on the form.
- Redesigned Builder UIs to avoid erroneous actions.
- Redesigned Builder UI for functions: Separate scrolling, collapsable application placeholders, hiding of non-valid entities.
- Redesigned Builder UI for form states: Collapsable states, filter by state description, consolidated presentation.
- Upgraded to Go 1.16 and switched to Go module.
- Fixed query lookups not being shown in Builder when CSV import is enabled.
- Fixed calendar column sub queries not reacting to changed filter criteria from parent form.
- Fixed SMTP could only send with STARTTLS.
- Fixed function loosing schedule definition when making changes to function body.
- Fixed login input field not updating when form is refreshed.
- Fixed invalid SQL syntax when attempting to insert an empty record.
- Fixed partial form reload not being triggered for new records when attribute values are set with form getter.
- Fixed form not updating after backend triggers caused value changes when form record was saved.
- Added iCAL subscription option for calendar fields.
- Added iCAL configuration options for limiting the provided time range of events.
- Added regex validation option to data fields, allowing validity checks for things like e-mail addresses and URLs.
- Added query filter criteria 'Form record is new', reacting to state of currently handled record.
- Added query filter criteria 'Login has role', reacting to assigned (or inherited) role memberships.
- Improved Builder UI to better display filter criteria behavior.
- Placed Builder documentation directly in Builder UI as overlay.
- Consolidated admin panel documentation UI with new Builder UI.
- Auto-conversion of German decimal commas for numeric values.
- Updated js service worker - next release, clients should not need browser cache clear.
- Updated to TinyMCE 5.7.1
- Filter encapsulating not always working correctly.
- Query filter with field value criteria causes SQL error when NULL operator is used and field value is NULL.
- Richtext editor does not open links.
- Builder UI, apply form record to attribute value is not shown for button fields unless saved and re-opened.
- Builder UI, when relation index was removed, affected columns do not stay deleted after form save.
- Added function schedules, allowing for reoccuring executions of application functions.
- Added 'create new record' shortcuts to relationship inputs.
- Added aggregation function to filter sub queries.
- Added default icons for attributes - these are used for data fields if not overwritten.
- Consolidated the 'tasks' section of the admin UI with the new function scheduler.
- Action 'run now' added for system task and application schedules.
- Improved application upload feedback in the admin UI.
- Remove option added for the custom company logo in the admin UI.
- Full page lists now also apply limit changes to the navigation history.
- Enabled order by attributes which are not included as columns.
- Enabled sort by sub query column in lists.
- Redesigned query filters, allowing all comparison types on both sides (sub queries, field values, system variables, etc.).
- Added multi line view to generic overlay dialog, useful for SQL previews and public key display.
- Improved some builder UIs (mostly filter inputs, menu management).
- Updated integrated database to PostgreSQL 13.2
- Full page list navigation not being properly added to navigation history.
- Filter arguments in column sub queries causing SQL argument count errors in edge cases when calculating row count.
- Sub query results showing badly formatted values with attribute type 'numeric'.
- List choice filters not updating when field value references are updated.
- Not all default field states being respected when using form state overwrites.
- Added a data view to relations in builder UI - these show the raw data from within the database. Helpful for understanding relations and finding issues.
- Improved form navigation - forms now keep references to previous forms, unnecessary navigation targets were removed as well.
- Improved presentation of data logs and help pages on mobile devices.
- Redesigned form actions slightly to improve usability on mobile devices.
- Redesigned start page, reducing the heavy reliance on primary module colors.
- Redesigned relation UI in builder to better manage associated entities (attributes, triggers, presets, etc.).
- Placed input blockers in admin and builder UIs when running heavy background tasks.
- Fixed automatic login being executed directly after a logout.
- Added query choices to enable user selectable sub filters on lists and calendars.
- Added form query filters, which enables n:1 joins on form records.
- Added persistent menu behavior between user sessions (open menus stay open).
- Added HTTP testing mode as CLI flag. Also added 'run with HTTP' script to portable package.
- Enabled auto-reconnect to backend when server was down or connection was severed because of power-saving features on mobile devices.
- Consolidated automatic foreign key indexing with manual indexes. They are now visible in the builder and can also be used for CSV lookups (if 1:1 relationships).
- Consolidated client side storage to central store for better control.
- Redesigned some input fields and layouts.
- Improved handling of user filters, automatically adding an empty line on open and removing lines on closing of the filter interface.
- Improved presentation for printing forms from the browser (automatically hiding menus and headers).
- Improved builder UIs.
- Added translation switch hotkey (CTRL-q) to builder.
- Added save hotkey (CTRL-s) to data forms.
- Fixed missing sequence reference on primary key when changing primary key type.
- Fixed file attributes not showing download links in data logs.
- Fixed field filters not working properly in data logs.
- Fixed gallery views for file inputs not being displayed correctly in Chromium browsers.
- Added form state effects for non-data fields for more flexibility when designing forms.
- Added URL presentation option for text input fields.
- Added option for list fields to apply current form record as attribute value when opening a new form.
- Added 'hidden' as default presentation option for data fields for easier form state handling.
- Enabled sorting by column batch with file attribute in first position - first non-file attribute is used for sorting instead.
- Switched to case-insensitive usernames for the internal authentication backend for better compatibility with directory services.
- Sped up application cache reloads significantly when updating a single application from inside the builder UI.
- Improved builder UI navigation and input elements.
- Improved some field UIs (file input, textarea).
- Fixed wrongly assigned filter operators.
- Fixed list fields not always encapsulating multiple filter criteria correctly.
- Fixed n:m attribute candidates for data fields not being shown in form builder.
- Fixed calendar values not being parsed by opened form when doing date selection.
- Fixed unusable bulk selection option being visible when bulk selection is not available in list field ('cards' layout).
- Fixed main header stuck on module color outside of module context.
- Fixed minimum field height not being large enough for some field types.
- Fixed file input field not opening files inside blank browser tabs.
- Fixed malformed error message when user permissions are insufficient.
- Fixed date input overlay not being placed in the correct position in admin logs UI.
- Fixed CSV importer attempting to update relationship attribute values for joined relations flagged as 'no update'.
- Fixed compatibility issue with importing older modules in 1.5 instances.
- Fixed SQL for data retrieval total row count being invalid if grouping is used.
- Added sub queries as list columns and filter conditions - enabling more complex data retrieval. While nesting sub queries is supported, ordering by sub query result is not yet available.
- Added specific ANY operators to list and query filters in builder.
- Added filtering by system tupel ID.
- Redesigned form UI in builder - all field options are now visible within their context menus, not just as shortcuts. Query definition was moved to the side bar where there is more space, especially for complex filter criteria.
- Improved SQL query cache, speeding up data retrieval requests.
- Added header navigation entry for the parent module if it is accessible to the user.
- Fixed header entry wrongly being shown to users without permissions in some edge cases.
- Fixed ugly file names when downloading files (Firefox only).
- Fixed some relationship field inputs not updating when sub join was updated to NULL value.
- Added 'does not contain' operators to list, query and form filter conditions with case sensitive and insensitive versions.
- Slightly redesigned menus in mobile layout for more visual consistency.
- Tweaked filter inputs to automatically hide invalid operators.
- Cleaned up URL navigation syntax.
- Fixed integer input fields wrongly overwriting inputs starting with negative character prefixes (as in -12).
- Fixed wrong deferral settings on specific schema relations, causing issues during larger application upgrades.
- Fixed invalid hover effects on read only lists in card layout.
- Added presets as default values for relationship input fields.
- Added names to presets for easier reference within builder UI.
- Added date inputs for user list filters.
- Fixed data logs not showing values for partly set field values (relevant for date ranges).
- Fixed record ID not being applied to fields when using the 'form-open' action on a button field.
- Fixed form states being removed when updating default preset record.
- Fixed issue stopping pg indexes from being created.
- Fixed non-registered sub components from form state component.
- Reduced number of shown fields on data log - only fields are shown, which relate to records that can be created or updated on the current form.
- Fixed data log not updating in all cases.
- Fixed mobile date inputs not displaying correctly.
- Fixed error messages not showing correctly on all clients.
- Fixed PWA not allowing screen rotation.
- Fixed PWA icon masks.
- Added gallery view for file inputs in lists and on forms.
- Added new list layout 'cards'.
- Added the option to define a fixed width for list columns.
- Added more feedback when loading from a slow server.
- Enabled REI3 to be installed as a progressive web app. This does not yet enable offline work but does allow for handling REI3 like a native app on mobile devices and on PC (if supported by the browser).
- Added a SQL preview function in builder for troubleshooting data requests.
First public release of the REI3 application platform. Released: 2020-10-23.