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
major
#26068
Context-dependent number ranges via annotation
Attribute values can be automatically populated from a number range. There are several shortcomings to this approach:
- The "label-provider" option is only taken into account if the ID pattern also includes the label. This doesn’t make sense because the label is also used to distinguish between number ranges. It is entirely possible that you might want to generate the same numbers in different contexts.
- The context cannot be used in the in-app default configuration.
- The context aspect displayed in the pattern must always match the technical ID that identifies the number range.
- Number ranges are only possible for string attributes, not for numeric attributes.
Improvement
- The "Date Format" option for ID generation can be set regardless of whether the %DATE% placeholder is used in the ID pattern or not.
- A "dynamic sequence name" can be configured. This allows numbers to be generated from different sequences, depending on the object’s creation context. Either the creation context itself can be used as the dynamic sequence name, or a function can be defined to calculate it from the creation context.
- The dynamic sequence name can be incorporated into the ID using the %OBJECT% placeholder. However, the use of %OBJECT% in the ID pattern is optional.
- A new TL script function, "nextId(<sequence-name>)", is available to achieve the same effect. In particular, this function can be used to initialize numeric attributes with an ID from a sequence.
Code Migration
- The label-provider option in tl:ConfiguredNumberHandler must be replaced with dynamic-sequence-name.
- The implementation of ` dynamic-sequence-name ` must now implement the `tl:DynamicSequenceName` interface instead of `tl:LabelProvider`.
Test
- New attributes `idLong ` and `idString ` in `tl-demo` of type ` DemoTypes:A`.
- Corresponding test script: /com.top_logic.demo/src/test/com/top_logic/demo/scripted/model/attribute/defaultValue/TestContextSensitiveID.script.xml.
Regression:
- Configure the Create dialog for DemoTypes:A.
- Customize the form for the Create dialog.
- Explicitly set the idLong attribute to visible in the dialog.
- Create an object using this dialog.