5.4 Changelog

This page lists all the changes introduced in 5.4 releases. See also the release notes.

5.4.13 (2022-03-11)

Features

  • Improve MasterDetail usage

    Details

    MasterDetail form is no more displayed by default, but only when a line is selected and we want to create new record from. Also, when we add a new record, cancel current edit or click on back button, MaterDetail form is hidden. Add a new button "Add and new" to allow pushing current record in grid and quickly create a new one.

  • Add support to use MasterDetail with editable grid

    Details

    When MasterDetail is used with editable grid, the form is readonly and record is now live sync with the changes made in editable grid.

Fixed

  • Fix downloading attachment of action-report

  • Fix permission checking with charts and custom views

    Details

    Should not check for permission on MetaView when executing actions from charts. onInit action on charts use current model if calling from action-view else, ScriptBindings is used, so that we still have a context.

  • Fix file name downloaded in notify box

  • Prevent grid sorting when there are dirty rows

  • Allow dashboard drag&drop according to view customization permission

Security

  • Add model attribute to action-report

    Details

    If a model is not specified on action-report, permission is checked against context.

  • Check context read perm on action-report in case of attachment

    Details

    If action-report attach the generated report to current object, it now check for read permission on that object.

5.4.12 (2022-03-04)

Fixed

  • Add missing hilite style CSS

  • Add missing attributes when processing widgetAttrs

5.4.11 (2022-02-23)

Features

  • Allow access to custom fields in StringTemplate via dotted notation

    Details

    StringTemplate doesn’t allow $ character in expressions. This is the way we use to access custom field from context : $extraAttrs.myCustomField. Accessing custom fields need to be prefixed by the related json field name (ex: <SaleOrder.extraAttrs.myField>`or `<SaleOrder.attrs.anotherField>). For custom fields in default attrs field, it is not needed to use prefix (ex: <SaleOrder.myField> ). However, it is recommended to always use the related json field name as prefix.

  • Add axelor.view.watch.delay and axelor.view.watch.kinds VM arguments

    Details

    Defaults are as follows (working on Eclipse/IntelliJ on Linux):

    -Daxelor.view.watch.kinds=ENTRY_CREATE
    -Daxelor.view.watch.delay=300

    axelor.view.watch.kinds is a list of comma-separated strings of the following values: ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE.

    axelor.view.watch.delay is the update delay in milliseconds.

    Varying development environments may require special configuration in order to have view hotswap working.

    For example, on Windows, only ENTRY_MODIFY events might be triggered in some cases. Moreover, there may be a big gap between those events, requiring to increase the update delay. So one might want to use:

    -Daxelor.view.watch.kinds=ENTRY_CREATE,ENTRY_MODIFY
    -Daxelor.view.watch.delay=4000

Fixed

  • Fix parsing field widgetAttrs to preserve type depending on attribute

    Details

    Extra widget attributes doesn’t takes into account the type of each attributes. This result of some unexpected behaviors. For example, the x-true-text="true" cause error on BooleanSelect widget. Depending on the attribute, the value is converting to the right type.

  • Preserve selected flags from action values

    Details

    Preserve selected flags when using response.setValue(field, collection) with collection of maps without version field.

  • Sort advanced search fields in lexicographic order

  • Fix view hotswap when running embedded Tomcat

  • Fix JS error when having favorite menus with duplicate names

    Details

    In "Organize favorites", in the user changes a menu link, they may then add another menu with the same name, causing AngularJS error tracking for unique names.

  • Fix panel showTitle attribute

  • Translate toolbar menu customization shown to technical staff

  • Fix back button when view-parem forceEdit is used

  • Fix m2m field update upon select record

    Details

    Populated the m2m items all data. Only omit the version field (not fully populated as the record is already saved)

  • Fix position of field error message to be always to bottom of the field

  • Fix file upload when using filename pattern

    Details

    Property file.upload.filename.pattern should be evaluated on each upload in order to evaluate {year}/{month} or {day} keys. Moreover, when using a custom filename pattern, {name} should be placed at the end of the pattern. If omitted, he is appended by default at the end.

Security

  • Fix sanitize to prevent XSS vulnerabilities

5.4.10 (2022-02-02)

Fixed

  • Fix AuthSecurityWarner initialization on app startup

    Details

    Resource might be loaded before Guice is initialized, which causes "Guice is not initialized." error.

5.4.9 (2022-01-31)

Deprecated

  • Deprecate legacy form layout in favor of panel layout

    Details

    Form widgets <notebook>, <break>, <group>, <portlet>, and <include> are deprecated. cols and colWidths form attributes used for legacy form layout are also deprecated. Those will be removed in the next major version. Use panel layout instead.

  • Deprecate Groovy domain models

    Details

    In next major release, domain models will be generated in Java only.

Features

  • Add application setting to disable permission check on actions

    Details

    Use application.disable.action.permission = true to disable permission checking on actions. That setting severely breaks security. It should be used with extreme caution and as a last resort only. It will be removed in the future.

  • Add application setting to disable permission check on relational fields

    Details

    Use application.disable.relational.field.permission = true to disable permission checking on relational fields. That setting severely breaks security. It should be used with extreme caution and as a last resort only. It will be removed in the future.

  • Better visibility in DMS file details

  • Add setting "auth.saml.logout.request.signed"

Fixed

  • Allow to select multiple records in o2m/m2m inside an editor

  • Prevent sorting when any row is dirty in o2m/m2m grid

    Details

    This fixes losing changes after sorting on a column.

  • Fix default value of Boolean custom fields

  • Fix checking for create permission on add actions

  • Fix static/tooltip/button-group widget in views extensions

  • Translate "Use offline…​" text in dms file details

  • Fix view hotswap with IntelliJ IDEA

  • Check for permission in suggest box create actions

5.4.8 (2022-01-03)

Fixed

  • Fix going into edit mode in editable grid with large horizontal scrolling

  • Don’t trigger popup’s onLoad upon closing

    Details

    When a popup was closing when saving the record, onLoad actions was triggered. This is unnecessary as the popup will be closed in all cases. It was also causing errors because the actions results was applied on a closed popup/form.

  • Fix m2m field update issue

    Details

    The m2m items, upon select/edit should not be fully populated as the record is already saved (similar to m2o). In controllers, make sure to return a compact map in m2m fields, ie a list of map with the records ids. Then, the view will fetch the records with all necessary fields by itself.

5.4.7 (2021-12-17)

Changes

  • Only show access type error for all users

    Details

    Technical and non-technical users are now notified the same undetailed access type error message. Details are shown in the logs only.

Features

  • Add support to UTF-8 BOM file in CSV Importer and CSVFile helpers class

  • Log technical message for AuthSecurityException

Fixed

  • Do not test pattern on empty string

  • Check for create permission when adding row in editable grid

  • Fix web service perms ignoring action parameter when no id is specified

  • Translate tree node Expand/Collapse tooltip

  • Exclude auditable fields, created(On|By) and updated(On|By), when copying record

Security

5.4.6 (2021-11-30)

Changes

  • Improve editable grid shortcuts to confirm/cancel edit

    Details

    We can now use ENTER key to confirm current edit and ESCAPE key to cancel.

Features

  • Add view.grid.editor.buttons application configuration

  • Add canEdit attribute to panel-dashlet

    Details

    The new canEdit attribute on panel-dashlet will control whatever we can edit dashlet records even if the dashlet is in readonly. By default, when a panel-dashlet is in readonly (or main view is readonly mode or top container element is readonly), the record will be opened in popup. We can’t edit the records. If editable, the record will be opened in a new tab, in readonly mode. We can then switch to edit mode to edit the record.

    Few more improvements :

    • Show file icon in grid dashlet when in readonly mode

    • Show pencil icon in grid dashlet when editable

    • Fix ignored dashlet attributes in dashboard

Fixed

  • Fix login failure event

    Details

    Fire login failure event with form client, LDAP, and Basic Auth.

    Can’t be triggered with other indirect clients like OAuth 2.0, OpenID Connect, SAML 2.0, etc.

  • Fix memory leak in session listener

  • Fix horizontal scrolling in editable grid

  • Fix field sometimes blank on initialization with CodeEditor widget

  • Check for permission on messages requests

  • Fix commons.codec dependency conflict when using SAML

  • Check for read permission on action-record changing dummy fields

  • Translate grid selection checkbox tooltip

  • Fix readonly dashlet with forceEdit should open readonly popup in readonly mode

  • Fix Gantt view sometimes blank on initialization

  • Fix resetting of shared custom views

  • Fix keyboard shortcuts on Mac-like devices

    Details

    When Macintosh is detected, use specific keyboard shortcuts. Macintosh keyboards don’t have AltGr nor Insert keys.

  • Fix concurrent update error when moving tasks in Gantt view

  • Check for permission on followers requests

  • Fix NPE with null password to AuthService#passwordMatchesPattern()

  • Fix blocked loading of custom translations

  • Fix ignored regex on custom field

  • Check for permission on attachments requests

  • Fix dashlet with popup should open editable popup in editable mode

5.4.5 (2021-10-21)

Changes

  • Add view customization permission on Group and view.customization application configuration

    Details

    All users used to be allowed to customize views, and only admins could share. Now, view customization permission is checked on Group, and can be set to "Not allowed" (default), "Can customize", or "Can share". view.customization application configuration defaults to true. If set to false, Customize menu and custom views are disabled.

Fixed

  • Fix null value with BooleanRadio when switching from a record to another

  • Fix permission check on action targeting a different model from current record

5.4.4 (2021-10-01)

Fixed

  • Check for permission on action model if defined

  • Fix infinite recursive popup grid loading

  • Fix alignment of meta JSON field using contextField

  • Fix JS error when M2O field has no namecolumn

  • Add scrollbar in DMS Permission dialog box

  • Fix missing ID on created records from TagSelect widget

  • Fix detaching of one-to-one from non-owning side

Security

  • Prevent script execution from custom stylesheet

5.4.3 (2021-09-08)

Changes

  • Serialize Time with seconds

    Details

    Time is now serialized with formatter "HH:mm:ss". Seconds are still not displayed by default in client (need to use x-seconds="true").

  • Require manual closing of datetime picker

  • Disable translation joins on queries by default

    Details

    Add Query.translate() and Filter.translate() to enable translation joins.

    REST API now accepts parameter translate to enable translation joins on criteria and for ordering, but never for domains.

    Web client always uses the translate parameter.

Features

  • Clarify title/placeholder of user password fields

    Details

    Clarify title/placeholder of user password fields in form view and change password page.

    • Change title depending on existing or new user

    • Add help popovers

    • Add password pattern help using user.password.pattern.title (customized via translation)

  • Use select control type on year, month, and time in datetime widget

  • Add support for related parameters in domain expressions

    Details

    Character $ is used to access related fields in domain expression parameters. This can be used to access other JSON fields. Example:

    "self.product = :$extraAttrs$myCustomProduct"
  • Add view-param grid-width to set width of grid in details-view

    Details

    Example:

    <action-view name="sale.orders" model="com.axelor.sale.db.Order" title="Sale Orders">
      <view type="grid" name="order-grid" />
      <view type="form" name="order-form" />
      <view-param name="details-view" value="true" />
      <view-param name="grid-width" value="25%" />
    </action-view>
  • Add multi-tenant aware thread implementation

    Details

    The com.axelor.db.tenants.TenantAware is a custom Thread implementation that keeps track of current tenant and runs the thread in transaction with current tenant in the context.

  • Add setter methods for all attributes in XMLInput/XMLBind CSVInput/CSVBind

  • Support adaptive date/time/datetime quick search in grid view

  • Add support for CSV/XML data import of custom fields

    Details

    Example:

    <!-- for CSV data -->
    <input file="some-data.csv" ...>
      <bind column="some" to="$attrs.some" />
    </input>
    
    <!-- for XML data -->
    <input file="some-data.xml" ...>
      <bind node="some" to="$attrs.some" />
    </input>

    For custom model records, you can specify json-model in order to automatically bind jsonModel, handle search domain, and set namecolumn.

    CSV import example:

    <input file="data.csv" json-model="ElectricityBillSubscription"
        search="json_extract_text(self.attrs, 'name') = :name">
      <bind column="name" to="$attrs.name" />
      <bind column="startDate" to="$attrs.startDate" adapter="LocalDate" />
      <bind column="endDate" to="$attrs.endDate" adapter="LocalDate" />
    
      <bind to="$attrs.billSubscription"
          search="json_extract_text(self.attrs, 'name') = :billName">
        <bind column="billName" to="$attrs.name" />
      </bind>
    </input>
    name,startDate,endDate,billName
    "Bill Jan2021","01/01/2021","31/01/2021","Test01"
    "Bill Feb2021","01/02/2021","28/02/2021","Test02"

    XML import example:

    <bind node="electricityBillSubscription" json-model="ElectricityBillSubscription" update="true"
        search="json_extract_text(self.attrs, 'name') = :_electricityBillSubscriptionName">
      <bind node="name" to="_electricityBillSubscriptionName" />
      <bind node="name" to="$attrs.name" />
      <bind node="startDate" to="$attrs.startDate" adapter="LocalDate" />
      <bind node="endDate" to="$attrs.endDate" adapter="LocalDate" />
    
      <bind node="billSubscription" to="$attrs.billSubscription" update="true"
          search="json_extract_text(self.attrs, 'name') = :_billSubscriptionName">
        <bind node="@name" to="_billSubscriptionName" />
        <bind node="@name" to="$attrs.name" />
      </bind>
    </bind>
    <electricityBillSubscription>
      <name>Bill Jan2021</name>
      <startDate>01/01/2021</startDate>
      <endDate>31/01/2021</endDate>
      <billSubscription name="Test01"/>
    </electricityBillSubscription>
  • Support x-seconds attribute on DateTime and Time widgets

  • Add ui-action-context attribute to use with ui-action-click

    Details

    The ui-action-context="scopeVariable" can be used with ui-action-click in custom view template to provide extra details in action context.

  • Expose $scope.openTab as axelor.$openTab

    Details

    The api can be useful for some apps loading in iframe.

  • Improve the indicator and delay the wait cursor

    Details
    • delay showing of loading indicator by 1 second

    • delay wait cursor till the wait spinner appears

  • Add support for view auto-reloading

    Details

    Use view-param named auto-reload, with value specified in seconds. Example:

    <view-param name="auto-reload" value="30" />

    Auto-reloading is paused when tab is not selected or when record is in edit mode.

  • Add JSON field meta info on all views

Fixed

  • Fix CSS of invalid BinaryLink

  • Fix value update action after save in one-to-many/many-to-many editor

  • Fix dirty form when there are custom multirelational fields

  • Fix grid search on custom fields

  • Fix grid customization when view has duplicate fields

  • Fix duplicate computed views after upgrade

  • Fix ActionResponse.setReload and refresh-tab signal from editor

  • Fix NavSelect widget with M2O record having an empty name

  • Fix attribute x-currency not taken into account

  • Fix user notifications for followers added by email address

  • Fix dashlet search triggering buttons

  • Log errors when persisting JpaFixture items

  • Exclude UI custom fields from exports

  • Fix missing handling of LocalTime in JpaFixture::load

    Details

    When loading fixture in tests with LocalTime fields, the JpaFixture throw a exception because LocalTime hasn’t appropriate constructor.

    Caused by: org.yaml.snakeyaml.error.YAMLException: No single argument constructor found for class java.time.LocalTime : null
  • Wait for actions before confirming line on editable grid

  • Fix unsupported regular expression in WebKit causing empty grid

  • Fix currency filter with symbols other than $, €, ¥, £

  • Use number input type on number fields

  • Fix text value escape on M2O names

  • Fix multi-tenant datasource configuration

  • Fix generated code when setting default="null" on nullable boolean

  • Fix broken free search

  • Fix stuck login dialog after wrong attempt

  • Fix recursive child grid view in popup

  • Fix readonly input in mass update form when grid has readonlyIf in fields

  • Fix grid export IndexOutOfBoundsException with collection columns and translatable order by

  • Fix ignored grid orderBy when applying default search filters

  • Fix empty PDF tab with latest Chrome

  • Fix readonly button on grid

  • Fix mass applying same permission to children DMS files

  • Fix free search with custom fields

  • Fix button showIf/hideIf on editable grid

  • Fix unnecessary fetch from field editor

  • Fix missing "contains" search with MultiSelect widget

  • Fix dirty checking issue with relational fields

    Details

    When some o2m has an onChange action that updates parent record with setValues(instance) the o2m items were wrongly marked as dirty if the o2m doesn’t have named column.

  • Fix multi-tenant datasource configuration

  • Preserve view-param showArchived when clearing filters

  • Fix uploading of meta files in form view

  • Fix Binary/BinaryLink in editable grid

Security

  • Check for permissions when calling actions

  • Check for permissions on dotted fields

    Details

    Check for permissions on dotted fields:

    • Filter permitted dotted fields in fetch request

    • Filter permitted dotted fields in search request

    • Filter permitted fields in ActionRequest.setValue

    • Check for create/write permissions on related fields in save request

    • Check for write permissions on editable grid

    • Hide dotted fields if user has no read permissions

    Users are still permitted to read dotted fields’ id, version, and namecolumn regardless of permissions.

5.4.2 (2021-04-15)

Changes

  • Default setting data.export.encoding to UTF-8

    Details

    When UTF-8 is used, BOM is added so that Excel recognizes the encoding.

  • Remove jcenter and prevent dependency confusion risk

  • Migrate from opencsv to commons-csv

  • Format exported dates and times with client locale

    Details

    Setting data.export.locale to set a fixed locale for all exports. Setting data.export.separator defaults to ';'. Only numbers (integer, long, decimal) were formatted using client locale. Dates, times, and datetimes now also use client locale. Setting date.format is removed.

Features

  • Improve grid customization

    Details

    <ul> <li>Show translated field titles besides field names</li> <li>Allow to save column widths</li> <li>Add removed fields as hidden as to preserve expressions</li> <li>Add reset customization button</li> <li>Don’t delete customized grids when clearing cache</li> <li>List fields from search filters in selector</li> <li>Remove move icons in selector</li> </ul>

  • Add action to select a panel in panel-tabs

    Details

    Example:

    <form ...>
     ...
     <panel-tabs>
      <panel title="One" name="t1"></panel>
      <panel title="Two" name="t2"></panel>
     </panel-tabs>
    </form>
    
    <action-attrs ...>
      <attribute name="active" for="t1" expr="true" />
    </action-attrs>
  • Apply translations on translatable fields and enums for data exports

    Details

    Only headers and selections were translated. Translatable fields and enums are now also translated.

  • Add "auth.ldap.user.dn.format" and "auth.ldap.user.username.attribute" configurations

  • Add view-param named default-search-filters to apply filters by default

    Details

    Example:

    <view-param name="search-filters" value="filter-sales"/>
    <view-param name="default-search-filters" value="confirmed,highValue"/>

    Filters named confirmed and highValue will be applied by default. For that usage, use new attribute name for each filter in search-filters.

  • Use thin scrollbars on grids inside form views

  • Add workflow status help

    Details

    Example:

    public void onFetch(
        @Observes @Named(RequestEvent.FETCH) @EntityType(Order.class) PostRequest event) {
      @SuppressWarnings("unchecked")
      final Map<String, Object> values = (Map<String, Object>) event.getResponse().getItem(0);
      if (values != null) {
        List<Map<String, Object>> status = new ArrayList<>();
        status.add(
            ImmutableMap.of(
                "name", "s1", "title", I18n.get("Status 1"), "color", "red", "help", "Some help…"));
        values.put("$wkfStatus", status);
      }
    }

Fixed

  • Fix NPE when loading extension views without corresponding base views

  • Fix "cn" used as ID attribute with LDAP

  • Fix Unexpected character '’ when running npm-build

  • Fix evaluation of filter if and if-module attributes

  • Fix grid column widths when popup is opened as maximized

  • Fix attrs reset for bpmn use case

  • Fix looped view loading when grid has o2m/m2m fields referencing themselves

  • Fix duplicate onChange call with BooleanRadio widget

  • Merge menus into mobile toolbar

  • Fix fetching LDAP attributes with Active Directory

  • Fix row height when using Image widget in editable grid

  • Fix missing ID in context after 'save' action in multirelational editor

  • Apply view attributes to new records as well

  • Fix "Cannot change session ID" exception when using basic auth on non-secure requests

  • Fix search query causing dirty form

  • Fix Phone widget readonly width adjustment

  • Fix wrong query string append with dynamic URL in HTML view

5.4.1 (2021-02-10)

Changes

  • Add x-show-bars attribute to panel-related and panel-dashlet (disabled by default)

Features

  • Add relative dates and current user/group criteria to advanced search

  • Add support for defining Column attributes insertable and updatable

  • Add tel link on grid view when using Phone widget

  • Add support for aggregation with Duration widget

  • Add flag dropdown to Phone widget

Fixed

  • Fix requiredIf with some widgets (BinaryLink, CodeEditor…)

  • Fix setting null on nullable number field with min/max attributes

  • Preserve per module web resource inclusion order

  • Fix sidebar="false" panel attribute evaluation

  • Fix URL widget in grid view

  • Fix grid field hilite overwritten by grid view hilite

  • Fix parent toolbar/menubar displayed in dashlet

  • Fix search engine action menu selection

  • Group M2O/O2O by ID in grid, but show namecolumn

  • Set "SameSite=None" attribute on cookies to allow CORS requests

  • Set first day of week according to browser locale

  • Fix modern theme button alignment in O2M editor

Security

  • Fix HTML sanitization

5.4.0 (2020-12-18)

Changes

  • equalsInclude attribute marks field to be included in equality test, instead of hashKey

  • Improve keyboard shortcuts

    Details

    The keyboard shortcuts Ctrl+F and Ctrl+G were conflicting with browser shortcuts, they are now changed to Alt+F and Alt+G respectively. Also fixed some broken shortcuts.

    Also added a dialog to show keyboard shortcuts which can be shown from the top-right corner menu.

  • Add support for toolbar and menubar on dashlet and o2m/m2m widgets

    Details

    For the toolbar, only first 3 buttons will be visible. For the menubar, only first menu will be visible.

Deprecated

  • Deprecate LoginRedirectException in favor of WebUtils.issueRedirect

  • Deprecate hashKey and hashAll in favor of equalsInclude and equalsIncludeAll

Features

  • Add support for separators in editors

  • Add menu item in form view to show workflow

  • Add support for x-show-icons on panel-related

  • Add refresh-tab response signal

  • Add helper api to easily open html tabs

  • Add support for defining view attrs externally

  • Improve Context api to allow overriding proxy usage

  • Add support searching on translatable fields

  • Override/add filters: currency, percent, number, date

  • Implement grid view customization

    Details

    We can now customize the top-level grid view with a customize column menu and selecting/removing/reordering fields.

    The customized view can be shared to all users by admins.

  • Add support for more hilite colors

    Details

    We can now use more named colors with hilite besides the hilite styles.

  • Alert when DMS files and exported files are not found

  • Implement json_set function

    Details

    The function can be used to update json values using JPQL.

    For example:

    UPDATE
      Product p
    SET
      p.attrs = json_set(p.attrs, 'seller.name', '"Some NAME"')
    WHERE
      json_extract(p.attrs, 'seller', 'id') = 1
  • Add before transaction complete event

    Details

    The event is for internal purpose only. We may promote it as public api in some future version. The event is fired with total number of records updated/deleted in current transaction.

  • Numeric and Decimal format support based on browser language

  • Date and DateTime format support based on browser language

  • Add support for help attribute to panel widgets

  • Add support for field tooltip templates

  • Support CSS on grid buttons

  • Add mail.smtp.from application setting

  • Add support to show workflow status on top of the form

  • Charts decimal/date format support based on browser language

  • Add current view type and view names in action context

  • Add reset search terms icon to advance search box

  • Add support for maximized popups for relational fields

    Details

    We can specify x-popup-maximized="all|editor|selector" to specify whether to show the `editor, selector or both popups in maximized state.

Fixed

  • Fix random mail sender test failure

  • Fix save action in editable grid

  • Fix onChange issue on html widget

  • Fix select image button text in HTML widget

  • Fix LoginRedirectException

  • Fix js error when clicking on html view tab

  • Fix Response#setValue with $-prefixed dummy field

  • Fix PDF visibility in DMS when changing tab content with Chrome

  • Fix image-select widget issues

  • Fix updating of selected flags for JavaScript expressions

  • Fix dotted target-name on TagSelect and many-to-one fields

  • Prevent sorting/searching on transient/dummy field in grid

  • Reset attributes when navigating and refreshing records from form view

  • Fix image height in *-to-many editor

  • Prevent searching on relational field without namecolumn in grid

  • Fix OK/Cancel button order on editable grid and master-detail

  • Fix needless recomputing of views

  • Fix visibility evaluation of field using master-detail widget

  • Fix empty selection in grid when action initialized selection state

  • Fix $fmt with dotted fields and custom views

  • Remove unsupported grid button attributes from autocompletion

  • Add missing Indian momentjs locales

  • Fix o2m/m2m field button bar display

  • Fix target-name attribute issue on m2o field of grid view

  • Fix save action in master-detail

  • Apply view extensions by matching name and groups

  • Fix NPE when finding computed field dependencies

  • Fix translation of dotted target names

  • Fix touchpad click to confirm on a popup

  • Fix custom field value expression doesn’t make form dirty

  • Fix Thai momentjs locale

  • Fix rendering of buttons and action execution on editable grids

  • Fix TypeError when several editable grids have the same dummy fields

  • Add missing English momentjs locales

  • Fix reference names in json fields

    Details

    When name field of the reference record is changed, the name value saved in json field is updated to reflect the updated name.

  • Fix custom fields support in string templates

  • Fix editable row reset to old value issue

  • Fix context issue with chart click actions