Behavior changes in Intrexx 19.03
Installation
This chapter describes the behavior changes in Intrexx 19.03.
HTTPS
Intrexx now expects by default that portals are run with an
encrypted HTTP connection (HTTPS).
This provides the following benefits:
- Improved security
- Support for the implementation of new authentication methods
- The ability to fully use browser APIs (e.g. krypt APIs)
- Changed data protection policies (privacy by default, privacy by design)
- Messages from modern browsers about missing encryption are prevented
Javascript-API changes
-
When using Microsoft SQL Server, an error will seldomly occur when displaying tables.
A reason for this may be that the table is sorted by a long text field that the
Microsoft SQL Server cannot perform. The error can be fixed by changing the
sorting of the table and then saving the application afterwards.
-
Removed:
oHtmlRoot.oUp.oFuncPart
(no longer compatible with the option to edit entries in
free layout tables).
This method returned access to any FuncPart within the browser window.
Instead, use
ix.util.getFuncParts
All FuncParts within the browser window can be identified with this.
ix.util.getFuncParts(document.getElementById("Container_Stage"))
allows you to identify all FuncParts within a container.
Additionally, FuncParts from the free table can be filtered out.
However, this is not necessary in most cases as this concerns scripts
that are performed in the context of a page. As soon as any HTML element
from an application page is referenced, the FuncPart can be retrieved via
ix.util.getFuncPart(HTMLElement)
-
Closing tooltips by clicking on the Cancel button can cause problems if
a target page is defined for the button and the tooltip should only be
closed. The solution is either to remove the target page or to transfer
all parameters for the target page.
-
The expert flag for the checkbox preselection has been removed and replaced by the
entry table.
-
Support for webservices in the browser (display elements, assign fields when saving, web request)
has been removed. It is better to implement these via the web service action
in the Processes module called by Userworkflowevent, for example.
-
The expert attribute "customdefault" no longer triggers a dependency when a page
is loaded. Until Intrexx Version 19.03, "customdefault" was populated via
JavaScript when the page was loaded. This triggered an onChange. Now, the
value is already provided by the server. If the removed triggers results in
the connected event listeners not being triggered, the dependency can
be triggered in the onload event of the page.
-
Removed functions:
getElement("E62723C1FFCB4D0E828FEA7C5743E836CA4A0546").onchange();
getElement("E62723C1FFCB4D0E828FEA7C5743E836CA4A0546").onclick();
JS events are now no longer attached via HTML attributes. Recommendation: Trigger
the event using jQuery (works in all browsers):
$( [HTMLElement] ).trigger( [EVENT] )
Example:
$(getElement("E62723C1FFCB4D0E828FEA7C5743E836CA4A0546")).trigger("change")
$(getElement("E62723C1FFCB4D0E828FEA7C5743E836CA4A0546")).trigger("click")
-
Removed:
window.oUp.connector
Instead, use
window.location.pathname
-
Deprecated:
ix.loader.popup
Will be completed removed in a future version. Until then, users are advised to use
ix.loader.tooltip
instead. If is absolutely necessary to use a popup, users can define a custom
renderer via ix.loader.api (callback function) and then load the new content
in a popup via window.open.
-
End of life for all browsers that do not fully support ECMA Script 5.
-
Slider: The vertical slider has been removed without replacement.
-
Old JavaScript UP objects for action controls are no longer available.
This affects: upActionControl, upTextActionControl and upImageActionControl.
The IX API provides the following alternatives: ix.ajax, ix.loader and upSimpleAjax.
-
Affects all UP classes (JavaScript) for edit controls: The validation methods
have been standardized and simplified.
The following methods are available:
public async checkValidity(): Promise<ValidationInfo>
public async reportValidity(): void
The following methods have been removed or are deprecated:
- validate
- validateRequired
- validateRequiredDo
- validateValue
- validateInput
- validatePattern
-
Removed:
editcontrols/datetime/UpDateTimeMainEditControl: toLocalDateString()
Instead, use
upDateControl.toLocalFormat()
-
The use of
self.oUp.strOnLoad
is only taken into account when the root window is loaded.
The function is deprecated in Intrexx 19.03 as the string needs to be evaluated via
an eval (security risk). It is better to use
self.oUp.bindEvent("onload", function() {});
On application pages, the onload should be used in the page's "Script tab" or registered
via JavaScript in the FuncPart:
getElement(PAGE-GUID).oUp.bindEvent("onload", function() {})
Velocity functions
The method DsucUser#changePassword(JdbcConnection, int, byte[]) has been
permanently removed after 4 years deprecation.
Intrexx authentication
Intrexx 19.03 no longer supports the Intrexx challenge-response authentication.
This means changes need to be made for deployment and web service logins in
Intrexx 19.03:
-
We recommend that you only provide web services with TLS encryption.
-
Web service requests from clients, especially from Intrexx clients, which use
challenge-response authentication, need to be reconfigured to a login
with username, domain and password.
-
When switching to TLS, it may be necessary to provide the SSL certificate
of the Intrexx server to the consuming clients or portals.
-
The class de.uplanet.lucy.server.auxiliaries.RemoteAuthProxy has been removed.
If required, it can be made available again upon request.
Portals and portlets
The new
portlet framework allows you to
create responsive portal pages. The setup of the grid structures is based on
the settings in the
Applications module.
Portlets across multiple columns:
After the upgrade, existing portal pages will be converted into the new format.
However, the conversion cannot take into account whether a portlet took up
multiple columns. These settings need to be applied in the grid after the
updated.
Portlets in application pages:
As the portlet framework works completely asynchronously, any request values
must be transferred to the integrated pages via the portlet container.
This cannot be performed automatically during the upgrade. Therefore, if filters
of integrated portlets access request values, you should focus your attention
on this point.
Load pages from within portlets
If buttons with the
"Open in current window"
setting open pages from within a portlet,
then the page will be opened in the portlet. If the page contains a lot of elements, all page elements
may not be displayed in some cases. The
"Open target in main window"
setting is much more suitable in this case as the loaded page will be displayed in its entirety.
Miscellaneous
Buttons
Buttons with
"Button" selected as the type
and that jump
"To the start page of the portal"
are no longer supported. They are patched into a "Text" button.
The
style class
is patched to "Link_Standard", custom styles are removed.
View tables
JavaScript that uses
Velocity in view tables to access the
respective table data record:
Scripts that use
$drRecord do not
work anymore because $drRecord is no longer resolved at this point.
Instead, the Velocity part should be transferred to a
"data-" attribute, for example, and
then read via JavaScript later.
Example:
ActionControl in a view table with the following script call:
takeOverTest($drRecord.getValueHolder('integervcontrolB53C1BD7').getValue(), getElement("195D00AD893B2C017E050B1D916688927AAFE825"));
The part
$drRecord.getValueHolder('integervcontrolB53C1BD7').getValue()
is defined as the value of an attribute (e.g. "data-bugid") on the
Expert tab,
and the script call is changed to
takeOverTest(this.dataset.bugid, getElement("195D00AD893B2C017E050B1D916688927AAFE825"));
Other changes
-
"PlainPasswordLoginModule" has been removed. It can be replaced like-for-like
by "IntrexxLoginModule".
-
editcontrols/datetime/UpDateTimeMainEditControl: "toLocalDateString()" removed,
'upDateControl.toLocalFormat()' can be used instead
-
Intrexx challenge-response authentication is no longer supported.
This means changes need to be made in the deployment and for web service
logins:
-
We recommend only providing web services with TLS encryption
-
Web service requests from clients - especially Intrexx clients - that use challenge-response
authentication need to be reconfigured to log in with username, domain and password
-
When switching to TLS, it may be necessary to provide the consuming clients
or portals with the SSL certificate of the Intrexx server
-
The class "de.uplanet.lucy.server.auxiliaries.RemoteAuthProxy", which was used
by only a few customers, has been removed. If there are customers who still
need this class, it can be reactivated upon request.
-
The callable "DSPassword" has been removed
-
The method "DsucUser#changePassword(JdbcConnection, int, byte[])" has been removed after 4 years of deprecation
-
Session management via the URL parameter "rq_SId" is no longer supported
-
For reasons of security, there are only HTTP-only cookies with (in the case of HTTPS)
with a set secure flag
-
The class "PortalServerPath" has been removed