7.6
7.6.0
Release date: August 29, 2017
Expression-Based Validation
After the introduction of client expressions for conditional formatting, we got very positive feedback, so we decided to make things even more expressive!
Starting with this release, you can use expressions to validate your input fields client-side. This is blazingly fast, as it does not trigger any request to the Runtime. This means it can be used in offline apps as well. You can use all the functions and tokens you are already used to in other client-side expressions. Additionally, we provide the special variable $value
to represent the to-be-set value of the input.
We also added a couple of your most favorite validations—like required
and e-mail
—as predefined expressions. All you have to do is select them and they are ready to validate. You can also extend them according to your taste. How good is that?
Improved Offline App Startup Performance
We optimized the startup performance of offline apps by skipping data and file synchronizations on subsequent application startups. Mendix still does them, but only if your app has been redeployed in the meantime. This significantly improves perceived application performance and time-to-interactive, especially in cases of weak connectivity.
Offline Data Retrieval for Custom Widgets
We have created a new API for custom widgets to fetch data while being offline: mx.data.getOffline
.
It supports data filtering, sorting, and paging. Please note that offline apps currently download and synchronize only that data which is used by some of the “core” UI widgets.
Runtime API Extensions
- We added an alternative
executeWithConnection
method to thecom.mendix.datastorage.DataStorage
Java class, which enables the connection to be taken from the current context. This allows queries to be run within the current transaction. For more details, see Interface DataStorage. - The Java API has been extended with the new
IOQLTextGetRequest createOQLTextGetRequestFromDataSet(String dataSetQualifiedName)
method. This enables creating an instance ofIOQLTextGetRequest
with anOQL
query extracted from a dataset via its qualified name, which is provided as an argument to the method. For more details, see Class Core. - The Java API now allows for registering callbacks before and after commit, create, change, and delete actions. For more details, see Core.getListenersRegistry.
- Core.addListener has been deprecated in favor of Core.getListenersRegistry().addListener.
Mendix Developer App Functionality Embedded in Mendix Mobile App
The Mendix Developer App functionality is now embedded in the Mendix Mobile app. The View Hybrid Mobile App screen in the Desktop Modeler now also refers to the Mendix Mobile app.
Widget Improvements
In our effort to improve the quality of the client, we have rewritten the Text Widget. You should not notice any differences compared to previous versions.
Deprecations
The mendix/lib/Error
class in the Mendix Client API has been deprecated. From now on, the client uses normal JavaScript errors to communicate failures in error callbacks.
Breaking Changes
-
As you might have heard, Microsoft ended support for Internet Explorer versions 10 and below. Starting with this release, we are following their lead and have officially stopped supporting IE 10.
-
We removed support for a few (and as far as we know, unused) parameters of the deprecated
mx.server.request
Client API call:options.unique
– from now on, the same requests are never merged together (meaning,options.unique
is considered to betrue
).options.sync
– the Mendix Platform does not support sending synchronoushttp
requests anymore, as that feature was deprecated in browsers.
-
The Client API method
session.getUserRoles()
has been removed. That API was never supposed to be public or used externally, but unfortunately it was. Any usages should be changed tosession.getUserRoleNames()
, which is the new and officially public API method.- The
session.getUserRoles()
method was used in the Mendix Feedback widget, so we made the Modeler automatically upgrade it. Note that if you have made a custom version of this widget with the same name, your changes will be lost in the upgrade. To prevent the auto-upgrade, you can rename the.mpk
. Of course, you will then have to updatesession.getUserRoleNames()
in your custom widget.
- The
-
The custom widgets listed below use a private API that has been improved and changed. This required us to update these widgets so that they keep working in Mendix 7.6. If you use any of these widgets, go to the Mendix Marketplace to download the latest version.
- Switch
- Carousel
- Range slider
- Slider
- Progress bar
- Star rating
- Progress circle
- Time series
- Badge
- Badge button
- Google maps
- Image viewer
Fixes
- We fixed an issue where the deployment crashed because of the invalid configuration of conditional visibility or editability settings. (Ticket 52259)
- We fixed the bug where multiple calls to a microflow done in quick succession from the client (for example, when the user clicked the same button multiple times) were merged together and actually triggered only a single execution of the microflow. (Ticket 53109)
- We fixed an issue where adding a new value to an enumeration used in conditional visibility/editability reset the configuration for the existing enumeration values incorrectly. (Ticket 54070)
- We fixed an issue where empty list view templates caused deployment failure. (Ticket 54291)
- We fixed an issue where the updated value of a virtual attribute was not calculated during microflow execution. (Ticket 52113)
- We fixed an issue where date tokens like
[%BeginOfCurrentWeek%]
were evaluated in client-side expressions but did not respect the first day of the week project setting. - We fixed the issues where specific changes in the model where not picked up by the running application upon a fast deployment (model update) (for example, when an Open Page action ignored the changes of the layout type of the target page).
- We fixed an issue where exporting to Excel did not export all records. (Ticket 54441)
- We improved how hybrid apps detect an absence of network connectivity. Now, it takes less time to recognize that a present network connection has no access to the internet or is unusable due to low throughput.
- We fixed exceptions in the microflow editor that occurred while pressing Ctrl + arrow keys.
- We aligned the default size of annotations between the Desktop Modeler and Web Modeler.
- We improved the find-text functionality in REST call actions and call web service actions.
- We fixed an issue with the
$orderby
OData query option to perform sorting even when you change the exposed name of the entity attributes. - We fixed the sorting of the system member (
owner
orchangedBy
) of a generalization of an entity. (Ticket 49207, 52831) - We fixed the filtering on the system member (
owner
orchangedBy
) of a generalization of an entity. (Ticket 43946) - We fixed the
NullPointerException
in the OQL query handler. (Ticket 49298) - We fixed a corner-case bug that occurred when uploading images from a Java action. This resulted in a runtime exception when initiated before a first-time “regular” upload.
- We fixed the memory issues that occurred when the
System.Error
entity stayed in the memory too long. (Ticket 38117) - We fixed an issue that made it impossible to tab to certain elements in the page (for example, tabbing from the first item in a list view to subsequent items). (Ticket 54074)
- We fixed an issue where reference set selectors and grids were producing errors while navigating back and forward. (Tickets 54820, 53481, 52270)
- When the user ran an app in an iframe and accessed it with the Mozilla Firefox browser, a JavaScript error occurred that resulted in pages not being loaded properly. We fixed this. (Ticket 51652)
- We fixed an issue where some custom widgets were unable to load if placed in a tab container with conditional visibility.
- The log files for widgets that fail to build can now be found at
<deployment folder>\log\check-widgets\<widget name>.log
. If you manually check widgets by selecting Tools > Check Widgets, the pop-up window detailing which widgets failed to build now contains a link to open the log directory. Also, when a file from a custom widget was removed, the build did not fail, because not all build remnants were cleaned up. We fixed this. (Ticket 53910) - Validation messages will no longer trigger a pop-up window on phones. Instead, the first message is now scrolled into view.
- We fixed the bug that caused
FileDocumentSizesPopulateJob
to infinitely query Amazon S3 to retrieve data about non-existing files. (Ticket 55851)
Known Issues
- In some situations, an object associated to another object cannot be committed during the execution of a before/after commit event, resulting in an error such as “Object of type ‘MyModule.MyEntity’ with guid ‘12345’ cannot be updated, as it does not exist anymore.” For example, consider two new objects
A
andB
, whereinA
(parent) is associated withB
(child) andA
has a before- or after-commit event. In this event,B
will be changed and committed. If you then commitA
,B
will be marked as ‘autocommitting’. Because of this, committingB
in the before- or after-commit event ofA
will fail, as it expectsA
to already exist in the database, which is not yet the case. (Tickets 59099, 59288)- Fixed in 7.16.0.
- 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.
- Fixed in 7.14.2.
- When a text widget has a placeholder for an enumeration attribute, the name of the enumeration is displayed instead of the caption. (Ticket 58848)
- Fixed in 7.9.0.
- When retrieving an entity with a virtual attribute without using a schema ID, references are not returned. This impacts the following scenarios: a template grid containing an entity with a virtual attribute will not show any data over an association (for example, nested data views); and custom widgets requesting Mendix objects with a virtual attribute through XPath will have no access to their associations. (Ticket 56016)
- Fixed in 7.7.1.
- For Atlas-based apps, it is not possible to use the Generate page functionality for buttons in the Tablet and Phone profiles. The Create Page dialog box shows no selectable page templates for these profiles.
- Fixed in 7.7.1.
Feedback
Was this page helpful?
Glad to hear it! Thank you for your response.
Sorry to hear that. Please tell us how we can improve.