Skip to content

Releases: axelor/axelor-open-platform

v7.1.5

08 Aug 12:36
78a8e9b
Compare
Choose a tag to compare

7.1.5 (2024-08-08)

Change

  • Always retain filters in grid view action context

    On actions executed from grid views, we can fetch current filters applied
    on the view using request.getCriteria(). it was initially only available if
    there are no records selected. To be consistent, it should also be available
    whatever records are selected or not. This shouldn't have any impact. Selected
    records are available thought _ids in context, the current filter through
    request.getCriteria().

  • Model field preferred over custom field when setting value

    When a custom field has same name of model field, action called from
    form view was updating field in form but action called from json editor
    was updating field in the json editor. This was creating confusion
    depending on where the action was called. To uniformize behavior, form
    field gets preference over custom field (if same name). This can be
    breaking change, but use a custom field name same as the model field one
    isn't recommended.

Fix

  • Fix title not displayed on custom collection fields

  • Fix reload not triggered after notify if pending actions

  • Improve reference field data for json fields

  • Fix auto add new row in editable grid

  • Fix prefer hideIf over showIf in expression evaluation

    When widget defines both expression i.e. showIf and hideIf then
    it will first eval hideIf expression, if it returns true then
    it is considered to be hidden true else it will take and eval result of showIf expression.

  • Fix set custom fields attributes

    This fixes updating custom fields attributes in views.

    Custom field that are part of the default attrs json field, attributes can be updated either without prefix
    (<attribute for="test" name="hidden" expr="eval: true"/>) or without prefix
    (<attribute for="attrs.test" name="hidden" expr="eval: true"/>), no matter where the action is triggered in the
    view. This means that whether the action is triggered from a field event or a button in the main form or from a field
    event or button inside a json field, it works same.

    For custom fields that are part of other json fields, attributes have to be updated with their respective prefix
    (<attribute for="myOtherJsonField.test" name="hidden" expr="eval: true"/>) or if the action is executed inside the
    json field, attributes can also be updated without prefix (<attribute for="test" name="hidden" expr="eval: true"/>).

  • Fix query domain on relational custom fields

  • Fix call save only when record is changed in popup editor

    When form contains dummy fields or x-dirty="false" items then when record is saved
    by clicking on ok, it should save record when those fields get changed regardless of
    form is not dirty.

  • Fix dirty issue for non-changed number value through action

  • Fix js expressions and attributes priority

    js expressions have the priority over attributes set with action-attrs.

  • Fix selection-in support for radio/checkbox select

  • Fix hide columns through action-attrs in collection

  • Fix ensure m2o value for json fields

  • Fix kanban column title writing mode

    When written vertically, multiline text should grow from right to left.

  • Fix details view should close on multiple selection of record

    When multiple records are selected in grid view then
    details view should be not open and should be close if opened.

  • Fix canEdit/canView on TagSelect widget

Security

  • Fix XSS vulnerability with message thread

v7.1.4

18 Jul 07:55
b33fd70
Compare
Choose a tag to compare

7.1.4 (2024-07-18)

Fix

  • Fix flashing issue on viewer in form view

    Viewers are rendered when the form is ready, means that record is fetched.
    This avoids flashing issue, especially with Image inside viewers.

  • Fix update custom fields

    This fixes updating custom fields in views.
    Custom field that are part of the default attrs json field can be updated either without prefix
    (<attribute for="test" name="value" expr="eval: "some""/>) or without prefix
    (<attribute for="attrs.test" name="value" expr="eval: "some""/>), no matter where the action is triggered in the
    view. This means that whether the action is triggered from a field event or a button in the main form or from a field
    event or button inside a json field, it works same. For custom fields that are part of other json fields, they have
    to be updated with their respective prefix : <attribute for="myOtherJsonField.test" name="value" expr="eval: "some""/>.
    Both action-attrs and action-record are supported.

  • Fix grid view pagination

    When we switch between grid to form and form back to grid,
    first time prev/next was having no effect.

  • Fix search-fields panel frame in search view

  • Fix set action attrs value with attribute

  • Fix original value for json field in form view

  • Fix popup should not open on click of expand in tree-grid/expandable

  • Add expression attribute support in tree view button

    Add support of readonly, hidden, hideIf, showIf, readonlyIf on tree-view button.

  • Fix entities updated/deleted in BeforeTransactionComplete observer

v7.1.3

01 Jul 15:25
1fb5c0f
Compare
Choose a tag to compare

7.1.3 (2024-07-01)

Fix

  • Fix padding in panel-tabs content

v7.1.2

01 Jul 12:46
993d33d
Compare
Choose a tag to compare

7.1.2 (2024-07-01)

Change

  • Add application.home link in user dropdown

    Starting from v7, the header logo doesn't rely on the application.home link anymore but on the user home
    action if configured. application.home link is now added in the user dropdown menu as Home page item.

Fix

  • Fix reset some user dummy fields on save

  • Fix zoom(scale) issue on mobile device

  • Fix null operator on collection field in advance search

  • Fix call search in search-view on tab refresh

  • Fix disable dashboard customize for mobile

  • Fix help widget display

  • Fix selection search field in chart view

  • Skip writing websocket IOException to log

  • Fix collection master-details widget styles

  • Add search-form support in search-view

  • Fix remove on form image widget

  • Fix dotted field lost on move in kanban view

  • Fix restore filter on search in calendar view

    In calendar view, when we select some user filters, then
    on change of month/week/day, it should be restored.

  • Improve tabs rendering

    Instead of hiding tab on unselect or deactivate by seleting different tab,
    Then it will use visibility:hidden style instead of display: none.
    Visibility will keep container height/width, so no re-calculation of style
    on select or activate.

  • Fix handle error in action response

  • Fix show/hide columns in tree grid

  • Fix search view rendering performance issue

  • Fix advance search bar position in toolbar

v7.1.1

07 Jun 16:11
b68f340
Compare
Choose a tag to compare

7.1.1 (2024-06-07)

Fix

  • Implement client side sorting in grid

  • Remove button on M2M only rely on canRemove attribute (not on the permission)

  • Fix nav menu/tabs pre-build color names

    This use pre-build color names hexadecimal code from axelor-front
    instead of the ones defined in axelor-ui. Also provide sass variables
    for all colors in order to re-use them.

  • Add missing widgets on custom fields widget selection

  • Set AJAX resolver on all indirect clients

    This fixes default SSO authentication request blocked
    because of CORS policy.

  • Fix calendar icon overlap on date

  • Fix adding a row in editable grid with create permission only

  • Check create permission in action if no id instead of write

  • Merge response values from actions

    When a group of actions return values, instead of using
    the last action result, merge the values.

  • Fix export of custom fields on one-to-many and dashlet

  • Fix processing view widgets (not recognized some widgets depending on view)

  • Add missing transient annotation on cid field of enhanced Model

    This fixes cid field not marked as transient when Model class is enhanced.
    It was notably breaking advanced search export all.

  • Fix o2m editor validation issue

  • Fix fetch record after save in form view

v7.1.0

28 May 15:51
8f9ec9e
Compare
Choose a tag to compare

7.1.0 (2024-05-28)

Feature

  • Don't add CSRF token header/cookie for native clients

  • Implement phone widget with react-international-phone

    Widget is supported on form and grid view.
    The phone widget renders the field as a phone number link in readonly mode,
    and as a phone number input with a country/region selector in edit mode.

    Compared to implementation in previous front-end,
    x-custom-placeholder option is no longer supported.

  • Improve email pattern

    Allow to use any printable characters in local part.
    Also remove upper limit on domain tld size.

  • Disabled autocapitalize, autocorrect and spellcheck on login fields

  • Add view processors for processing views

    View processors allow to programmatically add view widgets.
    They are automatically discovered on application startup,
    and they are executed in module resolution order,
    after finding view in MetaService::findView,
    which is used by view API endpoint.

    Example:

    public class MyViewProcessor implements ViewProcessor {
    
      @Override
      public void process(AbstractView view) {
        // Do something to the `view`.
      }
    
    }
  • Allow send emails in edit mode

  • Add prompt support on button link variant

  • Support calendar event popover template

    Example:

      <calendar name="sales-timeline" title="Sales Timeline" model="com.axelor.sale.db.Order" editable="true"
        eventStart="orderDate"
        eventStop="confirmDate"
        eventLength="8"
        colorBy="customer">
        <!-- All fields that should be fetched, ie. used in template -->
        <field name="name" />
        <field name="customer" />
        <field name="orderDate" />
        <field name="confirmDate" />
        <!-- The template that will be displayed in the event popover -->
        <template>
          <![CDATA[
          <>
           <ul>
             <li>{$fmt("customer")}</li>
             <li>{$fmt("orderDate")}</li>
             <li>{$fmt("confirmDate")}</li>
           </ul>
          </>
          ]]>
        </template>
      </calendar>
  • Add search support on collection field in grid view

    This adds support to search if the target model as a target name available
    (ie namecolumn). Multi values search is also supported using | separator.

  • Add attach files button in popup forms footer

  • Add support to use domain with custom fields on level >= 1

    This adds support to use following domain : self.myM2O.attrs.myCustomFied = 'some'.
    It was restricted to first level only.

  • Add link action attrs support for button

  • Add expandable grid support

    Two types of expandable widgets are supported with collection field/grid view

    1.tree-grid (widget="tree-grid") (only supported on form collection field)

      <panel-related
        title="Items (Tree)"
        readonlyIf="confirmed"
        field="items"
        form-view="order-line-form"
        grid-view="order-line-grid"
        editable="true"
        onChange="com.axelor.sale.web.SaleOrderController:computeItems"
        widget="tree-grid"
        x-tree-field="items"
        x-tree-limit="2"
        x-tree-field-title="Add new item"
      >
        <field name="product" onChange="action-order-line-change-product"/>
        <field name="price" width="200" />
        <field name="quantity" width="150" />
      </panel-related>

    Options:

    • x-tree-field: used to define nested o2m field of order-line model (currently it's same as order object i.e. items)
    • x-tree-limit (optional): used to specify limit to support nested tree structure.
    • x-tree-field-title (optional): by default it uses main title for sub items heading (title will only display when item contains no-sub items)
    • x-expand-all: in case of tree-grid, it's enabled by default, it uses x-tree-field value as x-expand-all value. To disable it, we can pass x-expand-all="false"

    Note: onChange action will only work on top-level collection grid, while other actions defined like onNew/onLoad will work on nested editable grid line as well.

    2.expandable (widget="expandable")

    <panel-related
      title="Items (Expandable)"
      readonlyIf="confirmed"
      field="items"
      form-view="order-line-form"
      grid-view="order-line-grid"
      editable="true"
      onChange="com.axelor.sale.web.SaleOrderController:computeItems"
      widget="expandable"
      summary-view="order-line-nested"
      x-expand-all="items"
    /> 

    Options:

    • summary-view: used to define expandable form-view, if not specified then by default it will use form-view attribute.
    • x-expand-all: to enable expand all feature, you have to specify comma-separated list of nested expandable collection field if any.

    Notes:

    Actions like onChange, onNew, onLoad will work as per schema definition defined in order-form or order-line-nested form.
    Options like x-tree-field, x-tree-limit, x-tree-field-title have no impact in case of expandable widget.
    If widget/summary-view are defined in specified grid-view, then it will automatically be used in panel-related, we don't need it to specify.
    To disable it we can pass widget="one-to-many/many-to-many" depending on type of field.

  • Allow open urls in edit mode

  • Don't store session for direct basic auth

  • Add support to fetch graph with save and fetch requests

    We can now pass select map to the save and fetch requests
    to return object graph. If fields and related options are also
    given, they will be merged with the graph.

    The format of the select map is as follow:

    {
     ...
     "select": {
       "name": true,
       "customer": {
         "name": true
       },
       "items": {
         "product": {
           "name": true
         },
         "quantity": true
         "price": true
       }
     }
    }
  • Add scatter chart support

  • Add area chart support

  • Support hilites on calendar view

    Support elements on calendar view to define hiliting rules.

    The hilite attributes are:

    • if: boolean expression condition
    • styles: comma-separated list of styles: fill (default), outline, stripe, strike, fade
  • Add toggle password visibility feature

    On password fields, this add a toggle icon at the end of the input
    in order to effortlessly hides/reveals password for enhanced security
    and convenience.

  • Add support to export collections fields

    Collection fields can now be exported. This can be enabled using
    data.export.collections.enabled property. The default separator
    used is |. This can be changed using data.export.collections.separator
    property.

  • Add call button link in phone widget edit mode

  • Add missing getters and setters for view element attributes

    Add missing getters and setters for view element attributes
    in package com.axelor.meta.schema.views.

  • Add support to identify collection items from save/action response

    The client can now set cid (collection id) to unsaved collection
    items to identify the same from the save and action responses.

  • Improve kanban UI/UX

    Kanban columns can now be collapsed. An 'x-collapse-columns' property
    has been added, accepting a comma-separated list of column names that
    should be collapsed by default (reference fields not supported). This
    comes with other visual changes such as pagination and minor fixes.

  • Add radar chart support

  • Add drawing widget

  • Add OpenAPI v3 specifications and Swagger UI

    OpenAPI v3 specifications are available at %URL%/ws/openapi
    Swagger UI is available at %URL%/#/api-documentation

Change

  • Upgrade Jackson from 2.15.3 to 2.17.1

  • Upgrade Guava from 32.1.3 to 33.2.0

  • Upgrade Gradle from 7.5.1 to 8.7

    This upgrade Gradle from 7.5.1 to 8.7.

    Upgrade the Gradle Wrapper to benefit from new features and improvements :
    ./gradlew wrapper --gradle-version 8.7

    This also include upgrade of Gradle plugins used.

  • Move view collaboration to Axelor Enterprise Edition

  • Upgrade Undertow from 2.2.28 to 2.2.32

  • Upgrade Woodstox from 6.5.1 to 6.6.2

  • Load Monaco editor resources from local instead of from CDN

  • Upgrade Redisson from 3.19.3 to 3.29.0

  • Re-introduce multi-tenancy support

    Clients without session support (e.g. basic auth) should provide X-Tenant-ID header
    with every requests to select a tenant.

    Clients with session support should send X-Tenant-ID header with login request.

  • Upgrade PostgreSQL JDBC from 42.7.2 to 42.7.3

  • Upgrade ASM from 9.6 to 9.7

  • Upgrade Apache Commons CLI from 1.6.0 to 1.7.0

  • Upgrade Apache Commons CSV from 1.10.0 to 1.11.0

  • Update fullcalendar from v6.1.9 to v6.1.11

  • copyWebapp Gradle task excludes hidden files only

    copyWebapp Gradle task used to exclude development files used by previous axelor-web front-end.
    Now, it excludes hidden files only.

  • Upgrade Junit5 from 5.10.1 to 5.10.2

  • Upgrade Apache Commons IO from 2.15.1 to 2.16.1

  • Upgrade Jsoup from 1.17.1 to 1.17.2

  • Upgrade pac4j from 5.7.2 to 5.7.4

  • Upgrade SLF4J from 2.0.9 to 2.0.13

  • Move SSO authentications to Axelor Enterprise Edition

  • Upgrade Apache Tika from 2.9.1 to 2.9.2

  • Upgrade Tomcat from 9.0.84 to 9.0.88

  • Upgrade Groovy from 3.0.20 to 3.0.21

  • Upgrade Byte Buddy from 1.14.11 to 1.14.14

  • Upgrade Hazelcast from 5.3.6 to 5.3.7

  • Upgrade Infinispan from 13.0.21 to 13.0.22

  • Upgrade Ldaptive from 2.2.0 to 2.3.2

  • Upgrade Snakeyaml from 1.33 to 2.2

  • Align rendering and styles between card and kanban views

    <deta...

Read more

v6.1.5

16 Aug 15:27
ff72566
Compare
Choose a tag to compare

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

v5.4.22

16 Aug 15:26
ce398ab
Compare
Choose a tag to compare
Release 5.4.22

v6.1.4

23 Jun 08:46
b524cb7
Compare
Choose a tag to compare

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

    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

v5.4.21

23 Jun 08:45
84fd2c4
Compare
Choose a tag to compare
Release 5.4.21