enhancement
critical
major
minor
minor
#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 method of executing a command, in which the arguments are first written to the client and then sent back to the server during execution.
Code Migration
These usages must be replaced with the LinkGenerator.
#!patch
@@ -289,25 +287,24 @@
* Create a URL for the given ID.
*
* @param anID The ID to generate a 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 handling the chart choice.
*
* This is determined by inspecting the {@link ChartProducer} to see if it is a {@link ChartChoice}.
Test
Refactoring. No test.