7.17

Last modified: February 22, 2024

7.17.2

Release date: August 9, 2018

Fixes

  • We fixed the bug that occurred during the transition from an anonymous to an authenticated user session in a clustered environment. (Ticket 67084)
  • We fixed an issue with the new {{themeCss}} placeholder, where the CSS files were not inserted when deploying your application. (Ticket 67200)

Known Issues

  • Users with non-administrative user roles with the permission to manage users are able to escalate their privileges. For more information on this vulnerability, see SSA-875726 Privilege Escalation Vulnerability in Mendix.
  • There is an issue when a Create button is placed on a data grid and configured to create a specialization of the grid entity. In this case, an instance of the grid entity will be created instead of the requested specialization. For example, when a grid has been configured to list Animals and there is a Create button which should create a new Dog, it will still create an Animal. (Ticket 67014)
  • The createXPathQuery in the Core Java API does not support adding variables at the moment. (Ticket 67019)
  • Updates or commits to the Team Server can result in an error dialog box. When doing a commit or update to the Team Server after more than 1 hour following the last Team Server connection, you will get an error dialog box with the details panel showing SvnOperationCanceledException info. This can be solved by retrying the update or commit action again. (Ticket 67735)

7.17.0

Release date: July 31, 2018

Productivity Improvements

Download the Latest Modeler from My Apps

We added the Download latest Modeler option to the My Apps dashboard tab in the Desktop Modeler. Now you can easily and quickly find the location of the latest Modeler.

Retain Text When Switching Actions

You can now retain text when switching between the Show message and Validation feedback actions.

Retain XPath Constraints When Switching Entities

You can now retain XPath constraints when switching entities in a Retrieve action in microflows.

Action Button Improvements

This release contains a number of action button improvements. Enjoy!

Create Object

We added Create object to the available actions for an action button. This means that you have more possibilities to create new objects. For instance, you can create a new object and show a page from a menu item.

Show Page

We now support the Pages per specialization setting for the Show a page action of an action button. When a context entity with specializations is available, this setting becomes visible and can be configured.

Delete

As you all know, data grids and template grids allow you to place a Delete button on the control bar, which deletes the selected objects. The Delete button has been freed from the control bar of these grids, so you can now put it in data views, list views, and template grids as an action button.

When placed on a data view, the Delete action button will delete the connected object. When placed in a list view, the object of the containing list view item will be deleted. You can specify to close the page with the Close page option, or keep the page open.

Action Button Widget Improvements

In our effort to improve the quality of the Mendix Client, we have rewritten the action button widget and made the following improvements:

  • The Disabled during action property for microflow buttons now works as expected.
  • All other buttons are always disabled when the action is running.
  • We only show the button as disabled when the action takes more than 1 second, so you will not get a flickering button for short-running actions.
  • When the render type for the button was set to Link, you were not able to trigger the action by using the keyboard. You can now tab to the link button and trigger the action by pressing Enter.
  • When the render type for the button was set to Link, you could also always click it and fire the action (for example, call a microflow), even when this should not have been possible because not all the parameters for the microflow were available. We fixed this, and the action will now only be fired when all the required parameters are available.

Import Mapping Improvements

  • You can now pass a parameter with a primitive type (string, integer, etc.) to an import mapping, and then use that in a REST operation.
  • You can now let the caller of an import mapping decide whether they want to create, ignore, or error when the entity to be obtained does not exist.
  • You can now map the same attribute twice, as long as one mapping is a key. Key attributes are used for lookup and they are not written, which means that mapping them twice is fine.

Published REST Service Improvements

  • You can now write your own authentication for published REST services by using a microflow that returns a user.
  • You can now add, update, or delete REST parameters.
  • A PATCH operation is now available as one of the options in the REST publish auto-generation dialog box.
  • An import mapping in a REST operation that reports it cannot find the object by the key will now result in an HTTP response 400 rather than 500.
  • You can now use any name as a parameter name. You can also select the microflow parameter to which it should be passed.
  • You can now have a microflow parameter that takes its value from an HTTP header, both in the authentication microflow and in operation microflows.

View Mode Improvements

  • We now support referencing external CSS files in the settings.json file.
  • We fixed an issue that caused the View mode to crash when the page contained a list view widget with templates.
  • When viewing a page based on a pop-up layout, we now render the pop-up window similar to the client.
  • It is now possible to view a different tab in Tab container widgets by clicking them.

New Features

  • We improved the performance of microflow execution and commit actions by avoiding database communication when releasing save points.
  • We improved the performance of commit handling by avoiding unnecessary database communication for auto-committed objects.
  • We now log logging metrics at the trace level instead of the info level.
  • Rotated image thumbnail creation now supports more image file types.
  • We added createXPathQuery in the Core Java API. This offers a fluent way of creating and executing an XPath-based query. This new API supersedes the retrieveXPathQueryEscaped methods, which is deprecated pending removal in Mendix 8.
  • It is now possible to recursively search for usages by clicking the search icon or by selecting the Find usages option in the context menu. Doing so will open the new results while keeping a breadcrumb of the steps taken to get there.
  • You can now utilize directional indexes to speed up sorting operations on data grids.

Fixes

  • We fixed the debugger display issue wherein spaces were not shown. (Ticket 64873)
  • We fixed an issue with displaying the debug variable of dates formatted as yyyy-MM-dd'T'HH:mm:ss.SSS'Z'. (Ticket 63317).
  • We fixed an issue causing the $current_user variable in the microflow scope to be different from the current user object in the state. This led to a situation where changes made to the associations of the current user object in the state were not reflected on the $current_user object in the microflow scope. (Ticket 64582)
  • We fixed the bug that caused the loss of associations during the transfer of an anonymous session into an authenticated one. (Ticket 63581)
  • We fixed an issue where the time zone drop-down menu showed incomplete information on the location and area. Now, the drop-down menu has the correct description of (GMT-x) location/area instead of only (GMT-x) location. (Ticket 65115)
  • We changed the timings of the periodic actions responsible for updating the expiration time of persistent sessions in the database and deleting the expired sessions to solve a race condition between them. As a result, we introduced the SessionKeepAliveUpdatesInterval custom setting, which regulates the frequency of session updates in the database. (Ticket 62847)
  • When a custom widget used a nanoflow parameter, an error occurred in the Modeler when trying to view the widget’s properties. This has been fixed. (Ticket 66293)
  • When a list view showed uncommitted objects over an association from another uncommitted object in the page, clicking Cancel resulted in an error in the client. This has been fixed. (Ticket 44396)
  • When a data view switched from showing an image to none and then back to the same image, the image did not become visible again. We fixed this for you. (Ticket 63842)
  • When exporting documents to PDF, a lot of logging was generated to the standard output when running in Mendix Cloud v4. Because it was not logged to a log node, you could not change the log levels to influence the logging output. The logging now is logged to the Document exporter log node, for which you can set the log level. (Ticket 64477)
  • When a data grid was configured with \"wait for search\", the search results were not restored when navigating back to the page. This has been fixed. (Ticket 63102)
  • When a reference selector was both read-only and set to Required, a validation error was shown even if a value was filled in. We fixed this. (Ticket 58498)
  • The built-in email validation now recognizes email addresses with capital letters. (Ticket 62432)
  • When a drop-down menu search field used an attribute on which security constraints applied, an error occurred in the client if the user did not have access to that attribute for at least one object in the data source. We fixed this for you. (Ticket 65651)
  • Opening the search bar of a data grid widget now longer disables the page scrolling. (Tickets 62159, 63893)
  • When performing a data grid search on a date or range over an association, too many results were shown. This has been fixed. (Tickets 59087, 64139)
  • We fixed the random page scrolling on pages based on layouts with a scroll container that has a sidebar that can be toggled. (Ticket 59157)
  • An error occurred in the Modeler when attempting to edit a text template that referred to an attribute that was deleted from the domain model. We fixed this for you.
  • We fixed the small issue where the pager of app templates showed an empty third page.
  • We fixed an issue in the import mappings where it was not possible to pass the parent object to the microflow to obtain the object. (Ticket 65708)
  • We fixed an issue in export mappings where using a reserved namespace led to an error. Now, http://www.w3.org/XML/1998/namespace will always have the prefix xml, and http://www.w3.org/2000/xmlns/ will always have the prefix xmlns. (Ticket 64512)
  • We fixed an issue in import mappings that used Find by key, wherein if the key appeared after a property with the value null, the import mapping reported that the key could not be null. (Ticket 65836)
  • We fixed an issue in the mappings where the properties tab did not show all the mapping sources. (Ticket 65585)
  • We fixed an issue where a runtime error during an offline synchronization was not reported to the user. (Ticket 64709)
  • The Close page setting for the Save changes and Cancel changes actions triggered from a pop-up window was ignored. This setting is correctly applied now. (Ticket 64352)
  • We fixed the rounding of Long values when retrieving objects and returning microflow results. (Tickets 63443, 63854)
  • We fixed an issue where microflows depending on the data grid selection did not send all the related state to the server. (Ticket 65114)
  • We fixed an issue where mx.data.get with filter.references containing an entity generalized from System.FileDocument did not return all the satisfying results. (Ticket 64052)
  • We fixed an issue where rapidly calling REST services that use cookies passed cookies back to the server in a subsequent request. (Ticket 66627)
  • We fixed an issue where sorting on data grids led to an exception. (Ticket 65276)
  • We fixed an issue where opening an entity that contained an index based on a system attribute resulted in an error. (Tickets 64349, 65679, 66003)
  • We fixed an issue where creating two indexes on an attribute with different directions resulted in a model synchronization error. (Ticket 66758)
  • We now validate the default value of grid search fields. (Ticket 62081)
  • When letting the Modeler automatically generate the contents of a data view, it incorrectly generated reference widgets for non-persistable entities. This resulted in consistency errors. We fixed that.
  • We fixed an issue where adding multiple widgets in an empty layout placeholder (for example, in a building block or via copy-and-paste) resulted in duplicate widget names.

Breaking Changes

  • We changed the behavior of the Save changes and Cancel changes actions with regard to the Close page setting. Previously, the No value was ignored when the action was triggered from the pop-up window, which is not the case anymore. We have converted your apps to use the Yes value (which is the default, so you may have already been using it) in those situations. Unfortunately, the cases where a Save or Cancel button was placed in a snippet that was used from both content and pop-up pages cannot be properly converted, so we picked Yes.
  • We changed the behavior of the Read-only style on an input field in a snippet. When there was no enclosing data view in the snippet, it defaulted to Text. It now bases the Read-only style on the place the snippet is called. When there is an enclosing data view where the snippet is called, it uses the Read-only style of that data view. If you were depending on the read-only style defaulting to text in this situation, you must change the style on the data view or on the input field accordingly. (Ticket 63030)

Known Issues

  • Users with non-administrative user roles with the permission to manage users are able to escalate their privileges. For more information on this vulnerability, see SSA-875726 Privilege Escalation Vulnerability in Mendix.
  • There is an issue when a Create button is placed on a data grid and configured to create a specialization of the grid entity. In this case, an instance of the grid entity will be created instead of the requested specialization. For example, when a grid has been configured to list Animals and there is a Create button which should create a new Dog, it will still create an Animal. (Ticket 67014)
  • The createXPathQuery in the Core Java API does not support adding variables at the moment. (Ticket 67019)
  • Updates or commits to the Team Server can result in an error dialog box. When doing a commit or update to the Team Server after more than 1 hour following the last Team Server connection, you will get an error dialog box with the details panel showing SvnOperationCanceledException info. This can be solved by retrying the update or commit action again. (Ticket 67735)