7.2 Changelog
This page lists all the changes introduced in 7.2 releases. See also the release notes and the migration guide.
7.2.5 (2025-01-08)
Feature
-
Allow TenantAware to not start transaction by default
Details
Allow TenantAware to not start transaction by default.
This is required when the thread task need to manage multiple transactions on it’s own.
Fix
-
Fix downloading of DMS file with content instead of meta file
Details
This fixes downloading of DMS file with string content, that are not associated with a meta file.
-
Fix default min/max size of json fields
Details
Doesn’t provide default min/max size to 0 for json fields. It is up to the user to define the values.
-
Add support for Mayotte in phone widget
-
Fix persist query string params in tab url
Details
When app is opened through url let say search-view url like this {demoURL}/#/ds/sale.search/search?customer=Miss then query parameters should be persist with url and also when switching between tabs it should also restored query string url for that associated tab.
-
Fix use context for toolbar button for panel-dashlet
Details
It should use context of dashlet action view to evaluate expression like showIf/hideIf/readonlyIf defined on toolbar button instead of tab action view context.
-
Fix X-Forwarded-Host that may contain port
Details
X-Forwarded-Host may contain port number, so server name should strip out the port from X-Forwarded-Host. It also means that port can either come from X-Forwarded-Host or X-Forwarded-Port. If both X-Forwarded-Host and X-Forwarded-Port are present, port from X-Forwarded-Port will take precedence.
-
Fix search view error when using search-form
-
Fix pass _ids in relational field grid
-
Fix hidden/readonly attr on view toolbar button
Details
When hidden="true" is set on menubar item or toolbar button it should hide the item or when readonly="true" is set on item, it should make item readonly. Currently hidden/readonly is only working when any of showIf/hideIf/readonlyIf is also defined on item.
-
Fix logout with form submission cases
Details
When extending, some logout (ex, SAML central logout) is typically not a redirection but returns a form that the front-end needs to submit.
Fixed by using full page request for logout instead of AJAX.
-
Pass context to editable grid onNew action
-
Fix skip passing fields in form record save
-
Fix set action attrs on reference field
-
Fix placeholder support in html widget
-
Fix html widget sanitize issue
7.2.4 (2024-11-29)
Fix
-
Fix SwitchSelect widget overflowing in vertical mode
-
Fix untranslated buttons titles in view switcher toolbar
-
Fix missing support of colors and shades config in charts
Details
Colors and shades config support was not implemented. This also add missing pre-build set of colors :
material,roma,chartjs,roma,macarons. For example :<config name="colors" value="roma" /> -
Fix save record in popup editor for m2o/o2o/m2m(selection)
Details
We can edit the record through popup editor, it will save record as following :
-
m2o/o2o/m2m(selection) : It will only save record when form is dirty
-
o2m/m2m(grid) : It will save record when any changes (also including non dirty dummy fields) in record
-
-
Fix exclude duplicate record in data store search
-
Fix cache a view/fields when data is exist
-
Show error when view is not found
-
Allow to generate empty changelog release
Details
If no changelog entries are found, there is no changelog release generated. This is the default behavior. New properties
allowNoEntryanddefaultContentcan be used to determine if it is allowed to generate changelog without entries and to specify the changelog release content (for example,No notable changes). -
Fix Slider tooltip position
Details
The position of the tooltip is now aligned with the slider thumb even after scrolling or zooming.
-
Add server-side view type mismatch check
Details
When a view is requested, check if the requested view type matches. If not, an error message is logged and no view is returned. This prevents front-end from processing views with wrong type and causing unexpected errors.
-
Fix onSave action in grid details view
-
Fix helper tooltip not accepting html elements
-
Fix Quick Menu dynamic width
Details
Quick menus no longer have a dynamic width so typing on text input is not flipping the menu anymore.
-
Fix rendering of object values in grid
-
Small changes to refine UI
-
Fix dirty record on MetaFile widgets
Details
Some MetaFile widgets, ie Image/Drawing/BinaryLink shouldn’t mark the main record dirty when updating an existing associated file.
-
Fix grid resizing lags
-
Enhance Gantt toolbar actions style
-
Fix login popup after expired SSO profile
Details
SSO profile may expire before the session expires, creating a situation where session exists with no valid profile. In that case, login popup could appear instead of being redirected to SSO.
Now, log out subject when profile expires.
7.2.2 (2024-11-12)
Fix
-
Fix set action attrs on editor fields
-
Fix handle integer value in selection widgets
Details
When field type is integer/long in case of selection widgets then it should set value in record as integer.
-
Fix onChange not triggered on Rating widget
-
Fix populate changes should reflect into collection grid
-
Fix pass grid name/type in editable grid action context
-
Fix o2m items data conflict issue
Details
When data is reset through action-record or data is updated through popup then updated data should be merged properly to grid data.
-
Fix show
Display processoption in form toolbar menu -
Fix x-bind string case sensitive issue
Details
When x-bind output of string field remains same for same field, it should reflect the output value instead of skipping value update.
-
Exclude cid field in default generated views
-
Disable sorting when we add a row
Details
After manual sort by column, added row could be at the top instead of the bottom.
-
Fix tag height in advance search causing toolbar visual effects
-
Close popup when adding records in o2m edit mode
-
Fix tree-grid empty summary view styles
-
Fix handling 0 valued in selection widgets
-
Fix Stepper clickable in read-only mode
-
Fix missing i18n extract of report-box#label attribute
-
Fix skip translations search for empty value
-
Fix grid customization of fields mentioned several times
Details
On a grid view definition, there may be several instances of the same field with different "if" conditions.
When saving grid view customization, we need to retrieve all the fields with the same name, not just the first occurrence.
-
Fix orderBy for new rows after save/refresh on o2m grid
Details
On o2m grid, order is normally preserved after search request. Now, search order is applied in case of form save/refresh.
-
Fix mark form dirty on editable m2m add
-
Fix SwitchSelect widget not displaying many-to-one values
-
Fix criteria on grid columns search
-
Fix persistence issue during tracking of one-to-one field
Details
Get new and old values without using context in audit tracker.
-
cid field shouldn’t be copyable
-
Fix close dropdown on tag click in tag-select
-
Fix empty criteria in advanced search query
Details
When field or operator is empty then that criteria should not send in search query.
-
Fix call onChange on m2m record change
-
Fix pass view attributes in field action context
-
Fix selection-in attribute support in mass update
-
Fix child dialogs shown behind mass update and advanced search
7.2.1 (2024-10-17)
Feature
-
Fix search bar value duplicated in other quick menus
-
Always show tenant selection for non-hosts resolved tenants
-
TagSelect x-color-field attribute is now compatible with hexadecimal color values
-
Add /files/data-export?fileName and /files/report?link endpoints
Details
Add files endpoints accepting filename as query param instead of path param.
This ensures URIs are ASCII only, complying with Shiro InvalidRequestFilter.
Files endpoints using filename as path param are kept for backward compatibility and may be removed in later versions.
Change
-
Re-enable Shiro global filters
Details
Shiro global filters are re-enabled, now that our endpoints comply with Shiro InvalidRequestFilter (ASCII-only URIs).
User endpoints also need to make sure they use ASCII-only characters in URI.
Fix
-
Fix version issue in editable m2m grid
-
Fix ColorPicker popper to work even with invalid values
-
Fix tenant selection at login when hosts are not specified
Details
Session may exist even if user is not logged in. Tenant specified from login request should override any session tenant.
-
Fix data-description not translated on enum/selection
-
Fix restore items state on save in form view
-
Invalidate session when tenant becomes inactive
-
Fix skip view dirty on editable m2m grid changes
Security
-
Always rely on codes when fetching user from profile
Details
Any extends of
com.axelor.auth.pac4j.AuthPac4jUserService.getUsershould takes care to rely on fetch users by code only (instead of fetching by code and email).In case your application use SSO authentication, a carefully review is needed. As we now rely on users codes to retrieve users, make sure the users codes match the user profile username or email provided by the identity provider (we rely on pac4j user profile mapping for this). For example, OpenID Connect providers commonly use
preferred_usernameclaim as username,but for others such as Azure OpenID Connect provider, it will use theupnclaim as username. As fallback is will use theemailclaim as email. In case of existing users codes not matching identity providers username or email, it will not retrieve them and users will not be able to log in. Manually change will be needed, by updating users codes with their email for example.
7.2.0 (2024-10-07)
Feature
-
Add email widget support in grid view
-
Add onDelete action support in panel-related
Details
This action will be call when removing record in o2m/m2m grid.
-
Add summary view support in tree-grid
-
Add error support on menus response
Details
Beside notify and info response, this also add error response support on menus actions.
-
Support localization with IETF BCP 47 language tags and fall back to primary language subtags
-
Add slider widget
Details
This provides the ability to select a value within a range. It can be used on
integeranddecimalfields. -
Add image field support in relational field
Details
Now we can use x-image-field="fieldName" attribute to show image in m2o (selection) and m2m (tag-select) for both grid and form views.
-
Add onSave action support in editable grid view
Details
This will support onSave for top level grid views and m2m collection grid only.
-
Add search support in image-select widget
-
Add onCopy action support in form-view
Details
This action will be execute after record is copied same as onLoad action in existing record.
-
Allow to configure client polling interval
Details
Client poll menu tags each 10 seconds. On application with a large number of active users and number of tags, this interval can lead to a number of performance issues.
application.polling-intervalproperty can be configured to define how often the client polls in seconds. This isn’t recommended to set a value lower than 10 seconds. -
Set quick menus height to fix value
-
Add stepper widget
Details
This provides the ability to indicate progress through a multi-step process similarly to
NavSelect. It can be used onselection,enumandmany-to-onefields. -
Improve advance search filters UI
Details
Add search input to hide non matching filters. This will provides better usage of filters in case many are displayed.
-
Add onCopy action support in panel-related
Details
This action will be call after duplicating record in o2m/m2m grid, It will be used along with x-can-copy="true".
-
Add context in search view action
Details
Now in search-view, when click on go button to execute the action, _searchContext is passed into action data context.
Example:
_searchContext: { //All not null search fields code: 'A', product: { id: 1, name: 'P1', version: 1 }, //Selected search result ids group by model _results: [ { model: 'com.axelor.contact.db.Contact' ids: [1, 2, 3] }, { model: 'com.axelor.sale.db.Product' ids: [1, 2, 3] } ], //Context params: _view, _source, _action, ... } -
Add react template support on Help widget
-
Allow kanban onMove action to set values
Details
In order to align with tree view node onMove action behavior, kanban onMove action values are now taken into account.
-
Add search-field support in dashboard
Details
This allow to add search fields on top of the dashboard. Fields can be filled when the dashboard loads with
onInitevent. Fields values will be add in context of all dashlets. -
Enhance relative time widget display
Details
Relative time widget now displays
Datedata fields in a more readable format: 'Today' if date is today, 'Tomorrow' if date is tomorrow, 'Yesterday' if date is yesterday, 'dddd' (day name) if date is within next week, 'Last dddd' if date is within last week, and asDateTimeotherwise.Also provide support in grid/tree views as well as in formatter.
-
Add onDelete action support in data views
Details
This will allow to define onDelete action support in grid, form, cards, kanban and calendar views. This will trigger actions before the delete process. Any errors or validations return during these actions should stop or/and suspend the execution.
-
Add shortcut to create new sub line in tree-grid
Details
When line is in edit mode, we can create new sub-line through ctrl + enter to commit current row and add new sub line to it.
-
Add support to display help or title on grid header column
Details
On grid header columns, the field help (fallback to column title) will be displayed as tooltip on mouse over. This is convenient for column with long title but low width.
-
Save/Restore grid view state
Details
When view is switched from grid, again back to grid then state should be restored.
-
Add color picker widget
Details
This provides the ability to pick a color in a color picker popover for string data fields. Supports attributes
x-liteto change the color picker to a basic color palette andx-color-picker-show-alpha. -
Password reset functionality
Details
Added built-in support for password reset functionality, allowing users to request a password reset link if they have forgotten their password.
Available new properties:
application.reset-password.enabled = true # (enabled by default) application.reset-password.max-age = 24 # (24 hours by default) -
Add switch select widget
Details
This provides the ability to pick a choice from a multiple-choice list. It can be used on
selection,enumandmany-to-onefields. It supports icons,x-directionandx-labelsfor hiding labels. -
Add support to reset dummy field value on save
Details
By default all dummy fields values are retain on save in form view, now with this option we can set x-reset-state="true" on dummy field in order to reset it’s value on save. By default it’s false.
-
Implement tree-grid widget support for grid view
Details
Add tree-grid widget support for grid view with some limitations that apply to first-level rows:
-
You can add a row to the bottom only, not between existing rows.
-
Ctrl+Enterto add subitem is not supported.
-
-
Provide ability to search/filter items in quick menus
Details
When there are more than 10 items in quick menus, a search input is display on top in order to search/filter the items.
-
Add support to display mail messages and followers on custom model
-
Enhance toggle widget display in readonly
-
Add views help link support
Details
Add view help link support (based on
helpLinkattribute). This feature was present on former version, but wasn’t added during React migration.The help link button is now placed on end right side of the toolbar.
-
Add onMove node action support in tree-view
Details
This action can be used to stop moving operation in tree view through sending errors or it can be useful to set some values before saving the node move modification.
-
Implement login customization
Details
Add support for customizing the login page.
application.sign-in.logo = url # absolute or relative url, to have a login logo different from `application.logo` application.sign-in.title = html # translatable sanitized html, shown after logo in form login panel application.sign-in.footer = html # translatable sanitized html, shown after form login panel application.sign-in.fields.username.show-title = true (default) | false application.sign-in.fields.username.title = translatable text # `Username` (default) application.sign-in.fields.username.placeholder = translatable text # default is empty application.sign-in.fields.username.icon = none (default) # Bootstrap or Material icon name or `none` to disable, shown as start adornment application.sign-in.fields.password.show-title = true (default) | false application.sign-in.fields.password.title = translatable text # `Password` (default) application.sign-in.fields.password.placeholder = translatable text # default is empty application.sign-in.fields.password.icon = none (default) # Bootstrap or Material icon name or `none` to disable, shown as start adornment application.sign-in.fields.tenant.show-title = true (default) | false application.sign-in.fields.tenant.title = translatable text # `Tenant` (default) # Extra buttons inside form login panel using custom button names application.sign-in.buttons.<button-name>.title = text application.sign-in.buttons.<button-name>.type = button (default) | link # use Button or Link component application.sign-in.buttons.<button-name>.variant = primary|secondary|success|danger|info|warning|light|dark # for button only application.sign-in.buttons.<button-name>.icon = icon_name # Bootstrap or Material icon name, shown before title application.sign-in.buttons.<button-name>.link = url # absolute or relative url with `:username` support application.sign-in.buttons.<button-name>.order = order # number relative to Login button (< 0 for before, >= 0 for after) # Use `submit` button name to customize Login submit button application.sign-in.buttons.submit.title = Sign in application.sign-in.buttons.submit.type = button application.sign-in.buttons.submit.variant = primary application.sign-in.buttons.submit.icon = noneFor translatable texts, you can add your translations to
custom_<language>.csvfiles. -
Add support for tracking custom fields
-
Add icon, order, hidden and description support on enumeration.
Change
-
Upgrade Guava from 33.2.0 to 33.2.1
-
Upgrade Undertow from 2.2.32 to 2.2.33
-
Login page layout changes
Details
Login page has been reworked with the following changes:
-
Move tenant selection to top
-
Translatable copyright
-
Login button renamed to Sign in
-
Add "or" separator before SSO buttons
-
Remove unimplemented "Remember me" button"
-
-
Translations in CSV without values are not loaded anymore
-
Upgrade Hsqldb from 2.7.2 to 2.7.3
-
Upgrade Junit from 5.10.2 to 5.10.3
-
Upgrade EclipseLink Moxy from 2.7.14 to 2.7.15
-
Fix customize columns in grid view
Details
When we do customize in grid view then by default hidden columns should be exclude from the columns display list.
-
Update string validation pattern to be case sensitive
-
Upgrade Pac4j from 5.7.4 to 5.7.5
-
Use "Add subitem" as default tree field title
-
Click on subline title to add new row
-
User email now has unique constraint
Details
You may execute this SQL statement for migration:
UPDATE auth_user SET email = lower(email); ALTER TABLE auth_user ADD CONSTRAINT uk_auth_user_email UNIQUE (email); -
Upgrade Tomcat from 9.0.88 to 9.0.90
-
Upgrade Groovy from 3.0.21 to 3.0.22
-
Upgrade Byte Buddy from 1.14.14 to 1.14.17
Remove
-
Remove hibernate search support
Details
We removed Hibernate search support (Full text search). The implementation was very basic and haven’t been followed and improved since the initial implementation.
Following properties aren’t used anymore and can be deleted from properties file :
-
hibernate.search.default.directory_provider -
hibernate.search.default.indexBase
We are actively working on a new integration that will provide much more power and a better integration in daily usage. Stay updated for the announcement in a future version.
There is no replacement. Advance search feature can be used in order to achieve same goal.
-
Fix
-
Fix web services that can have request URI containing non-ASCII characters
-
Fix commit new record on save in editable grid
Details
When we create new edit row and commiting record directly through enter press, then it should commit row instead of discarding row.
-
Validate URL without escaping it on grid
-
Fix formatting of enumerations in tracking messages
-
Prevent going into edit mode when clicking on an URL on editable grid
-
Fix add extra fields in customize dialog select
-
Change expand icon in tree-grid widget
Details
-
Use
>>for items which contains children items -
Use
>for items which doesn’t have any children
-
-
Fix inline o2m widget
-
Fix column sizing in tree-grid widget
-
Fix delete confirmation on unsaved row in tree-grid
-
Expose SLF4J API as Gradle api dependency
-
Fix grid constraints on customize grid popup
-
Fix eval expression on tree-grid collection widget
Details
When we used showIf, hideIf, readonlyIf expression on tree-grid widget, so on sub line context evaluation parent context should be merged in order to evaluate those expression correctly.
-
Fix binary widget issues
Details
-
set form dirty on upload
-
uniform styles for binary and binary-link widgets
-
add title on button for native tooltip
-
check http code 200 on download and also remove image=true from url
-
-
Fix updating custom fields having roles
-
Fix expand all in expandable grid widget
-
Fix auto add new row in editable tree-grid
-
Fix editor icons
Details
Display edit icon only if
canEdit="true"is explicitly defined in field (default m2o behavior). So the view icon will only be displayed if edit icon is not there.Also add tooltip on each button that describe the related action.
-
Fix preserve expandable state in collection field
-
Improve expanded node behavior in tree-grid widget
-
Fix action-attrs column attributes for tree-grid widget
-
Fix hideLegend in chart view
-
Fix show errors for custom fields
-
Fix negative zero conversion
Details
Decimal values between 0 and -1 do not become absolute. For example, -0.5 is no longer converted to 0.5
-
Fix sync values on refresh in collection grid
-
Fix sync editable grid values with expandable form
-
Fix use field name as default for x-tree-field in tree-grid
-
Fix sync selection in duplicate collection field
-
Fix duplicate widget ids that could cause RangeError
-
Fix Rating widget on custom fields
-
Fix translation and extraction of x-tree-field-title attribute
-
Fix skip undirty check on collection line discard
-
Fix o2m items version conflict when duplicating record