TopLogic - the automated application engine
  • Releases
  • Dokumentation
  • Github
  • Discord
  1. Home
  2. Releases
  3. TL_7.5.0-M2
  4. #26812

7.5.0-M2
TopLogic Release

2022-06-27

enhancement

major
#26542
yFiles: onDoubleClick and context menu on node
#26563
Checking dependencies for security vulnerabilities
#26620
Drag and drop with multiple selection
#26696
Increase minimum Java version to 11
#26715
Uniform multi-selection display for grid and tables
#26719
WrapperGenerator: Maven plugin for wrapper generation
#26726
Code" data type
#26732
Layout editor: alternative views for different model types
#26739
WrapperGenerator: Typed factory methods and addXxx(), removeXxx()
#26746
Model: Password attributes
#26761
TL-Script: contextPath() function
#26772
List-valued attributes with primitive type
#26775
Automatic translation from I18NConstants
#26811
Kafka & TL-Sync swap log messages to own file
#26816
Add Kafka and TL-Sync status to monitor page
minor
#24564
Creating ScriptRecorder templates not in the deploy folder
#26215
TL-Doc: Plugin for templates
#26703
Update MSSQL JDBC driver to version 10.2.0.jre11
#26707
API consistency checking tool
#26708
Check for missing translations of the I18NConstants in the nightly build.
#26712
Maven configuration for calling normalize layouts
#26722
TL-Maven plugin: Goal `translate` with encrypted server passphrase for DeepL
#26723
Redefine table column for primitive model attribute (simple)
#26728
CodeEditorControl should not write ACE editor for invisible fields
#26734
Schema editor: column selection when defining key attributes
#26747
JavaDoc: Warning for CameCase content inside <p>-tags in
#26752
Removing the tl-help module
#26764
Model editor: improve the design of the context menu
#26765
Model Editor: Extend context menu with GoTo Definition
#26766
Model Upgrade: Make-Abstract and Make-Concrete
#26799
Better loading cursor support for multiple long-running GUI actions
#26814
Faster resolving of files in FileManager (without Files.exists(...))
#26815
KBDataProducerTask should react on stop request of the scheduler
#26822
Migration: DB schema update after migration
#26838
Reduce selection for SingleSelectionModel if necessary
#26841
Migration: moving instances to another table
nice-to-have
#26706
Better logging when building the App-WAR
#26737
Eclipse Maven settings: current TL version as minimum version for plugin exclude
#26738
Archetype: Avoid fully qualified module names

defect

critical
#26850
Enums of a module disappear when creating and deleting enums in this module
major
#25761
Race Condition in TL-Sync in case of model changes, e.g. new TLClassifier
#26612
Invalid session revision for multiple threads
#26716
WrapperGenerator: derivation of StructuredElement not for all classes of a module
#26790
Error loading objects with long texts with H2
#26791
Knowlege Base: Error when updating validity periods when reloading object data
#26802
Migration scripts are not executed
#26808
Replay migration with H2 fails with long CLOB and BLOB values
#26809
Replay migration fails due to access to read-only columns
minor
#25343
Missing filename check with multi-upload
#25834
Error with system without "maintenance pages
#25859
JavaScript error when expanding nodes in TreeTables
#26379
Replay migration fails because DependencyInjection does not take place
#26438
Checkbox to select all entries cannot be clicked
#26465
Module names with parts from digits allowed but not working
#26555
Bookmarks from TL-Doc always use the internal address
#26557
TL-Doc: Highlighting of code blocks leads to RegEx errors
#26577
Import of documentation does not work on Maven workspaces
#26602
No admin button in Modern theme
#26619
Inlining a file in LayoutModelProcessor broken
#26624
Incremental updates in TreeGrid do not always work
#26635
Remove dependency on apache-mime4j-0.3.jar
#26637
Raise dependency pac4j to version 5.3.1
#26638
Raise dependency H2 to version 2.1.210
#26639
Remove Ext Module for Jetty
#26640
Remove dependency openxml4j
#26641
Update Jetty to 9.4.45.v20220203
#26645
TestComponentConfiguration should not test templates
#26646
Udate POI to version 5.2.2
#26647
Update jsoup to version 1.14.3 and guice to version 5.1.0
#26649
Update commons-io to version 2.11.0
#26660
Remove TL Remote
#26680
Multiselection support in Tree, Table and TreeTable
#26694
replace itext 2.1.7 with openpdf 1.3.27
#26698
Raise MySQL Connector to version 8.0.27
#26699
Collapsing the selection changes the selection in TreeGrids
#26704
Dependency Analysis Tool: No Duplicate Classes in ClassPath
#26710
ModelBuilder for Services view inserts user sessions into the table
#26711
ACE Editor and requirejs define the global variable require
#26717
JavaDoc writes outside the module by default
#26720
CodeEditorControl is to report client-side errors of the ACE editor
#26724
Meta-model: access to the index of a classifier
#26725
Schema editor: error when saving
#26727
Missing adjustment of (default) selection after tree update
#26731
Model Editor: Delete in detail view removes wrong diagram element
#26735
Form editor: crash if attribute no longer exists
#26736
Double configuration of the description of a TLType
#26744
Post-create action in trees does not work with in-app commands
#26748
Insufficient quoting when writing JavaScript
#26757
Inconsistent API of StructuredElement
#26758
Model editor loses selection during relayout
#26760
Project Demo: Use H2 database config as local default.
#26763
TL-Doc: Copying old help documentation does not work
#26767
Model export writes resource files to wrong module
#26768
Parents are not always expanded after selection change
#26770
Model Editor: Error during further editing after deleting element
#26771
NPE when filtering all threads in the thread monitor
#26773
TL script: Self-expression in concat() is not taken into account
#26774
TL script: Error message when sublist() is called with too large index
#26783
WYSIWYG CSS uses variable defined in com.top_logic.icons
#26786
Launch-Configs still reference Java-8 VM
#26795
Data migration for ticket #25881 and #26398
#26800
Scripting: Record StructuredElement with arbitrary singleton root
#26803
KnowledgeBaseRuntimeException when accessing deleted reference
#26804
No consistent deletion of model elements during model upgrade
#26806
Script recorder: record branch and revision only if necessary
#26812
Subtree update of an invisible root node faulty
#26827
No error message when accessing foreign key references if foreign key cannot be resolved
#26842
Scripting recorder: Playback of multi-selection faulty
#26845
NPE in the translation service if no network connection is available at startup.
#26848
Document management does not work in non-versioning system
#26849
Maps of ConfiguredInstances should keep order
#26854
Tab delete of a legacy tabbar is not recorded
#26855
Missing dependency DynamicComponentService -&gt; SafeHTML
nice-to-have
#26792
Scripting: Assertions try to access invisible columns
defect (User-visible)

minor

#26812

Subtree update of an invisible root node faulty

LayoutFramework

Suppose a tl:TreeComponent is configured so that its root node is not displayed.

If the root node receives an update—for example, by changing the structure through reordering the children—a tl:SubtreeUpdate is created with a range of Control IDs, which is later used by the tl:TreeRenderer to update the (DOM) nodes in this range using a tl:RangeReplacement.

To determine the range of Control IDs in the SubtreeUpdate that are to be updated, the children of the root node that were not newly added by the update are required. The Control ID of the first visible node among these children is the left boundary, and the Control ID of the last visible node is the right boundary of the range to be determined.

The state of the tree on the server is taken into account, not the one on the client. This means that the “first” and “last” visible nodes may differ across the various updates triggered by user actions.

For example, if the children are reordered in a first update, the subsequent update refers to the state after this reordering. In particular, the first node to be updated is the one that is at the beginning after this reordering. As a result, the range of Control IDs to be updated in the second update may be “significantly smaller” than that in the first update.

This is a problem because, when there are multiple subtree updates to the root node, only the last update is taken into account and sent to the client. The remaining updates are discarded.

Example

Suppose a root node has three children : `A` (ID: 1), `B ` (ID: 2), and `C` (ID: 3). Using drag-and-drop , `A ` can be moved behind `C`. This is a user action, but in effect, two updates occur. The server only knows the state before and after the operation. The desired order is `B, C, A`, and the server now attempts to achieve this. Due to the lack of a “smart heuristic” to minimize the number of operations required, two operations are needed. The elements are now “moved” to their correct positions in the desired order.

First , `B` is “moved” to the correct position — that is , `A ` and `B` are swapped—and then `C` is moved to the correct position, meaning `A` and `C` are swapped. In total, two swaps or “moves” take place.

For the first update—that is, the first swap—the range 1–3 of IDs that need to be updated on the client is obtained. This is fine, since the state of the root node’s children on the server matches that of the client (`A`, `B`, `C`).

For the second update, however—that is, the second swap—the range 2–3 of IDs that need to be updated on the client is obtained. This is because, after the first swap, the underlying children of the root node on the server are `B`, `A`, and `C`.

Since only the latest update is now transmitted to the client, the user encounters a problem: a subtree that is “too small” is being updated.

Test

Start PDX and create three new top-level library elements under Products > Bill of Materials. Then drag the first child of the root node behind the last child and drop it. As in the example described, only 3 children of the root node should continue to be displayed.

  • Get Started
  • Github
  • Discord
  • Das Unternehmen hinter TopLogic
  • Softwareentwicklung heute
  • Kontakt

© Copyright – Business Operation Systems GmbH

  • top-logic.com
  • Nutzungsbedingungen
  • Impressum
  • Rechtlicher Hinweis
  • Datenschutz
  • DE
  • Login