6.1 Changelog

This page lists all the changes introduced in 6.1 releases. See also the release notes and the migration guide.

6.1.5 (2023-08-16)

Changes

  • Meta json field precision for decimal field is now 20 by default

Fixed

  • Fix label field title reset

  • Fix static widgets causing editor dirty

  • Fix setting/resetting widgets title

6.1.4 (2023-06-23)

Features

  • Preserve grid scroll position on form save/reload

Fixed

  • Fix buttons actions in Tree views

  • Fix on how application and module are determinate during gradle resolution

    Details

    Due to the merge of com.axelor.app and com.axelor.app-module gradle plugins, it is now hard to determinate who is the module from the application. A module can be built itself, so it is seen as an application (when checking project == project.getRootProject()) and wrong plugins/dependencies/tasks are applied.

    To overcomes this, when a module need to be built standalone, axelor.application = false property can be added in gradle.properties. This way, it will be seen as a module instead of an application.

    Better support will be added in a future version.

  • Fix going into edit mode in editable grid when clicking readonly cell

  • Fix selection widget stealing focus after focusing another cell

  • Readonly fields, included dot fields, shouldn’t be focusable

  • Fix search request when adjusting page boundary

  • Fix onChange on Enter key in simple fields

  • Fix lost dotted fields in grid when using master-detail widget

  • Fix editable grid that don’t wait for pending actions

  • Fix deselected row after save triggered by previous row in editable grid

  • Fix search box show/hide on cards view dashlet depending on dashlet canSearch attribute

  • Fix onNew action on editor

  • Don’t create webapp folder in war

  • Fix toolbar buttons display when same grid is displayed multiple times

Security

  • Check for unauthorized users inside security filter directly

6.1.3 (2023-05-15)

Fixed

  • Align script helper test expressions with Action behavior

  • Fix attributes that need a test instead of an evaluation

  • Fix action test condition when context proxy is used

  • Do not try to generate binary download link on unsaved record

6.1.2 (2023-04-05)

Changes

  • Improve resolution of AOP core dependencies

    Details

    Use AOP version defined in root project. This avoids to use a version coming from transitive dependencies.

    For example, if a module is built and published using AOP version 6.1.2 and the root project use AOP version 6.1.1, it will now use the AOP version of the project, ie 6.1.1 (instead of getting the AOP version of the transitive dependency of the module).

Fixed

  • Don’t reload dashlet custom view when the widget is not visible

  • Disable exporting on Kanban views

  • Fix empty recipients list when posting message or adding followers

  • Fix onChange triggered after grid edit cancel

  • Fix missing "refresh", "new", "prev", and "next" keyboard shortcuts on cards and kanban views

  • Fix moving record on top level grid

  • Fix grid not editable depending on readonly/canEdit conditions

  • Fix redefined User namecolumn in collaboration widget

    Details

    When the namecolumn of the User entity is redefined, it was not taken into account in the collaboration widget.

  • Fix editable grid preventing save

    Details

    On slow network and/or big grids, going in and out of grid edit may trigger duplicate grid edit events and mess with the counting of active editable grids. This could cause saving to fail.

  • Fix export on relational fields

  • Fix spinner buttons triggering onChange inside editable grid

  • Escape data when generating xml

  • Don’t allow to post message without body

Security

  • Check canNew view attribute with "create new record" keyboard shortcut

6.1.1 (2023-02-06)

Fixed

  • Fix dirty view when an editor contain a button

  • Don’t set default value on dotted fields of existing records

    Details

    This fixes values mismatch of dotted fields having default values after saving new record from form view and switching back to grid.

  • Fix merging of namecolumn fields in code generator

  • Fix multiple grouping on grid

  • Fix reloading meta on systems having high number of cores

  • Fix onnew popup actions called with delay

  • Fix hidden panels/buttons in editor when the record changes

  • Fix details from view attrs reset when reloading from grid/tab

  • Fix auth provider setting exclusive

  • Forbid adding init params

    Details

    When merging properties, it should be forbidden to add any init params, whether we’re overriding fields or adding fields.

  • Don’t warn about unchanged ref when merging entity props in code generator

    Details

    ref may be specified as simple name or fully qualified name. When one is using simple name, compare by simple name only, as to avoid spurious warning.

  • Fix tab refresh with HTML dashlet

  • Fix grid grouping with evaluated scale

    Details

    Fix grid grouping when there are fields using scale evaluation (x-scale="field"). Use the maximum scale in the group for the formatted aggregation.

6.1.0 (2022-11-03)

Changes

  • Change code generator strategy to merge item attributes

    Details

    Previously, the code generator replace the field definition by the new one. Now the code generator will merge initial field attributes with overridable attributes. So, only necessarily attributes that need to be override should be defined in the overwritten entity.

    This applies to both entities and enums.

    In the case of entity fields, there are a few restrictions:

    • Attributes that are not overridable:

      • initParam

      • column

      • column2

      • ref

      • mappedBy

      • table

      • tz

      • json

    • Attributes that are overridable with some conditions:

      • large: large field cannot become non-large

      • transient and formula: persisted field cannot become non-persisted

  • Remove auth.provider.xx.absoluteUrlRequired property

  • Allow setting min/max to blank in order to remove the attribute in code generator

  • Define maximum number of records per page

    Details

    This change the default api.pagination.max-per-page, currently allowing unlimited number of records per page, to 500.

  • Admins group can now customize views by default

  • Disable sorting on grids having canMove="true"

  • Let JpaFixture items persist error propagate

    Details

    JpaFixture is used for tests.

    In case of data error, tests failed without the actual cause, and there is no point in continuing and have obscure errors happen on wrong data.

  • Support of X-Forwarded-Context header removed in favor of X-Forwarded-Prefix

  • Reorder HTML widget buttons for consistency with Markdown widget

  • Reorder toolbar icons for consistency with Markdown widget

  • Move JpaFixture to axelor-test module

  • Upgrade HSQL JDBC from 2.6.1 to 2.7.0

  • Upgrade MySQL JDBC from 8.0.29 to 8.0.30

  • Upgrade UnboundID LDAP SDK from 6.0.5 to 6.0.6

  • Upgrade Junit from 5.8.2 to 5.9.1

  • Upgrade Upgrade embedded Tomcat from 9.0.63 to 9.0.65

  • Upgrade StringTemplate from 4.3.3 to 4.3.4

  • Upgrade Greenmail from 1.6.9 to 1.6.10

  • Upgrade Redisson from 3.17.3 to 3.17.6

  • Upgrade Resteasy from 4.7.6 to 4.7.7

  • Upgrade Groovy from 3.0.10 to 3.0.13

  • Upgrade Flyway from 8.5.11 to 9.3.1

  • Upgrade Hibernate Validator from 6.2.3 to 6.2.4

  • Upgrade Woodstox from 6.2.8 to 6.3.1

  • Upgrade Undertow from 2.2.17 to 2.2.19

  • Upgrade EclipseLink MOXy from 2.7.10 to 2.7.11

  • Upgrade Shiro from 1.9.0 to 1.9.1

  • Upgrade Spotless from 6.5.1 to 6.11.0

  • Upgrade Jsoup from 1.14.3 to 1.15.3

  • Upgrade Pac4j from 5.4.3 to 5.4.5

  • Upgrade Caffeine from 3.1.0 to 3.1.1

  • Upgrade Hazelcast from 5.1.1 to 5.1.3

  • Upgrade Jackson from 2.13.3 to 2.13.4

  • Upgrade Infinispan from 13.0.10 to 13.0.11

  • Upgrade PostgreSQL JDBC from 42.3.6 to 42.5.0

  • Upgrade Tika from 2.3.0 to 2.4.1

  • Upgrade Byte Buddy from 1.12.10 to 1.12.17

  • Upgrade Ehcache from 3.10.0 to 3.10.1

  • Upgrade Gradle from 7.4.2 to 7.5.1

  • Upgrade Gradle Node Plugin from 3.2.1 to 3.4.0

Features

  • Improve support of X-Forwarded-* headers

    Details

    App now have full support for X-Forwarded-* headers and provides better usage of proxy management.

    Supported headers are: X-Forwarded-Host, X-Forwarded-Port, X-Forwarded-Proto, X-Forwarded-Prefix, X-Forwarded-For.

    pac4j usage is now based on the current request. When redirecting urls, the Location is now absolute and no more relative to current servlet path. This avoids custom proxy configuration to rewrite the location or cookie path.

  • Implement setting scale on grid column by action

    Details

    scale attribute on a decimal field can be change on a grid column by an action.

    <action-attrs name="action-set-scale">
      <attribute for="items.price" name="scale" expr="eval: 10"/>
    </action-attrs>
    
    <form ...>
      ...
      <panel-related field="items">
        ...
        <field name="price"/>
      </panel-related>
      ...
    </form>
  • Displays the number of displayed and totaled items on the DMS list view

  • Use colored letter on top right corner as placeholder user icon

    Details

    This aligns user display with mail message and collaboration.

  • Implement Markdown widget using TOAST UI Editor with Code Syntax Highlight Plugin

    Details

    Example:

    <field name="myTextField" widget="markdown"/>
    Attribute Description

    x-lite

    Enable lite toolbar (defaults to false)

    x-preview-style

    Markdown editor’s preview style: tab (default), vertical

    x-initial-edit-type

    Initial editor type: markdown (default), wysiwyg

    x-hide-mode-switch

    Whether to hide edit typo switch tab bar (defaults to false)

  • Fall back to colored letter user image in mail message thread in case of permission failure

  • Allow to get value of field with selection in string templates

    Details

    For example, use <SaleOrder.statusSelect.value> to get the value of the selection. With <SaleOrder.statusSelect>, you still get the title of the selection.

  • Support x-field attribute with InfoButton widget to specify the bound field

    Details

    Example:

    Use the x-field attribute on info-button widget to specify the bound field. When using x-field, the button and the field are 2 distinct elements. Any attributes defined on that field will be used to format the value. Moreover, this allows to change the button attributes without impact on the bound field.

    <panel>
      <button name="amountBtn" title="Amount" widget="info-button" x-field="totalAmount" onClick="my-action"/>
      <field name="amount" hidden="true"/>
    </panel>
  • Dynamically evaluate x-scale from context

    Details

    On a decimal field, x-scale attribute accept an field name for a dynamic evaluation. Grid and form view are both supported.

    <field name="decimalField" widget="Decimal" x-scale="currency.decimalPlaces" x-precision="18"/>
  • Implement support to see users on same view in realtime

    Details

    This allows to see users that are seeing/editing/updating the current opened record.

    Feature can be disabled with view.collaboration.enabled property. By default, it is enabled. On groups, there is a new boolean canViewCollaboration to determine whether members can view collaboration (true by default).

  • Introduce default number of items displayed per page config

    Details

    Introduce new config api.pagination.default-per-page :

    # Define the default number of items per page
    api.pagination.default-per-page = 40

    This config is used in UI, especially in grid views, to define the default number of items displayed per page. Default value is still 40 records.

  • Allow code generator to merge transient and multirelational fields

    Details

    Previously it was not able to override any attributes of transients and collections fields. Now it is allow to change some of their attributes.

  • Implement client-side sorting of o2m/m2m grids

    Details

    When there were some pending changes on a grid, sorting used to be disabled. This is no longer the case thanks to client-side sorting. Also transient/dummy fields can now be sorted. Only o2m/m2m grids can be sorted client-side. Other grid views that use pagination still send search request upon sorting.

Fixed

  • Fix truth value of action test expressions

    Details

    When evaluating action test expressions, "expr" should have the same truth value as "!!expr".

    It was working with types boolean, integer, date, time, datetime, enum, references (any-to-one), but was failing with long, decimal, string, binary, collections (any-to-many).

  • Fix x-scale="0"

  • Fix blank m2o in grid when there is no namecolumn