Enhancement
Critical
Major
Detail
Detail
#25907
Layout editor: inconsistent behavior of unfold state, selection and reaction to object creation
#25951
Application tests: CheckLabeledExecutabilityOp fails to assert non-executability of literal ResKey reasons.
#25952
Model Editor: Enum default provider does not work for enum references for which singleton link storage was explicitly selected
#26002
ConfigurationItem-valued properties with format annotations may cause an attempt to create abstract config items when deserializing null values
#26012
Help editor crashes when a user has chosen a language that is not in the supported languages of the application
#26039
Gridcomponent: Display of context menu for new (transient) row object leads to UnsupportedOperationException
#26085
An attribute of type tl.model.search:Expr is not displayed in the form above a TL script editor
#26111
Context menu commands for table rows are erroneously executed on the table model when opening the context menu in the background of the table
#26153
Migration: Replay fails if string values with line breaks are contained in the dataset where a line ends with a semicolon
#26171
A TL script expression entered in a wizard template is reformatted when transferred to the final template
#26223
TL script: Under unfavorable conditions wrong parameter values when evaluating local functions
Enhancement
CommandInvocation is the legacy way of executing a command by first writing the arguments to the client and then sending them back to the server upon execution.
Code migration
The usages must be replaced by the LinkGenerator.
#!patch @@ -289,25 +287,24 @@ * Create an URL for the given ID. * * @param anID The ID to generate an URL for, must not be <code>null</code>. * @return The requested URL for opening a dialog, may be <code>null</code>. */ protected String createURL(String anID) { CommandHandler theHandler = getCommandById(ChartDisplayDetailCommandHandler.COMMAND_ID); if (theHandler != null) { if (!StringServices.isEmpty(anID) && !CollectionUtil.isEmptyOrNull(this.getValues(anID))) { - Map<String, JSValue> theArgs = new HashMap<>(); - theArgs.put(ChartDisplayDetailCommandHandler.PARAMETER_ID, new JSString(anID)); - - return new CommandInvocation(this, theHandler, new JSObject(theArgs)).getInvokeExpression(this.getEnclosingFrameScope()); + CommandHandlerCommand command = new CommandHandlerCommand(theHandler, this, + Collections.singletonMap(ChartDisplayDetailCommandHandler.PARAMETER_ID, anID)); + + return LinkGenerator.createLink(DefaultDisplayContext.getDisplayContext(), command); } } return null; } /** * Return the inner manager for the chart choice handling. * * This will be one by inspecting the {@link ChartProducer} if it is a {@link ChartChoice}.
Test
Refactoring. No test.