TopLogic - the automated application engine
  • Releases
  • Dokumentation
  • Github
  • Discord
  1. Home
  2. Releases
  3. TL_7.8.1
  4. #27996

7.8.1
TopLogic Release

2024-06-24

Verbesserung

Wichtig
#27963
TL-Script: Zugriff auf das Label eines Fachobjektes in einer gegebenen Sprache
#27998
TL-Script-Funktion zur Filterung nach Berechtigungen
#27999
Kompositionsreferenzen in verschiedenen Tabellen speichern
#28049
OpenAPI Schnittstelle im Nutzer-Kontext
#28079
Preload für ForeignKeyStorage
Detail
#28005
Modell-Meta-Properties ergänzen
#28012
TL-Skript: Abfrage ob Objekt transient ist
#28014
Verbesserung der Zahlen- und Bilddarstellung auf Kacheln sowie Textausrichtung
#28017
Core Theme: Reduzierung des Abstands und Anpassung der Breite bei Subtitles in Formularen
#28018
Verbesserte Darstellung von Dropdown-Buttons
#28036
Migrationsprozessoren für Modell-Mapping
#28041
Erweiterung des TL Icon Fonts
#28051
Schnelle Identifier-Allokation bei hohem Bedarf
#28057
KBCache für Zugänge und Rollen "by name"
#28058
Konfigurierbarer Copyright-Header in generierten Wrapperklassen
#28061
Wertkonvertierung beim Setzen von Werten in transiente Objekte
#28063
Datenbankspalte für HTML-Attribute definieren
#28074
Applikationswerte primitiver Typen in der Persistenzschicht cachen
#28080
TL-Script: Deep Copy in Batch-Mode mit Preload
Kleinigkeit
#27867
Core-Theme: Script-Recorder Icons
#28050
TL-Sync in eigenes Projekt extrahieren
#28089
Rendering safety: Fehler beim Rendern von Template-Variablen abfangen

Fehlerbehebung

Wichtig
#27750
Fehlende Speichern-Abfrage beim Dialog-Schließen
#28035
Core-Theme: Theme "comfort/compact" verkleinert alle Charts
Detail
#27839
Doppelte Tooltips auf Sidebar-Buttons
#27959
Updates der Icons in Form-Headern defekt
#27996
Löschen taucht nicht im Kontext-Menü von Multiselektionskomponenten auf
#28002
Nicht geänderter berechneter Standardwert wird beim Speichern überschrieben
#28003
Application crashes, if some themes or some layouts have errors
#28004
Fehler beim Speichern von neuen Classifiern in einer TLEnum
#28011
Falsche Klassifikation von Assoziations-Enden bei Kompositionen
#28013
Script Rekorder: Speichern von Scripten zeigt nicht das Dateinamensfeld
#28015
Core-Theme: Die Kompakt-Variante wird fäschlicherweise als Standard ausgewählt
#28021
Buttons im deklarativen Formular sind nicht auf gleicher Höhe
#28024
Session-IDs nur in gehashter Form im Log und Monitor
#28027
Berechnete Attribute werden in transienten Objekten nicht ausgewertet
#28028
Reihenfolge von berechneten Spalten wird in den Standardspalten nicht berücksichtigt
#28030
Kein Replay bei Versionsupgrade von TL-6 auf TL-7.8
#28048
Reihenfolge von Migrationsanweisungen ist fehlerhaft
#28062
Ein Modul lädt unnötigerweise immer alle seine Typen
#28075
Fehlende "abstract" Eigenschaft bei TLProperty's
Kleinigkeit
#28006
Ergänzung fehlender @TemplateType Annotationen für ThemeVar Variablen
#28043
Fehler in Utility zur SQL-Migration
#28072
Migration für #27517 (User Management) crasht bei Inkonsistenzen
#28090
IDEFileSystemCache loggt Fehler bei schneller Anlage und darauffolgender Löschung
Fehlerbehebung (Nutzer-sichtbar)

Detail

#27996

Löschen taucht nicht im Kontext-Menü von Multiselektionskomponenten auf

ContextMenuDifaV7MultiSelect

Die Tabellen spezifischen Kontext Menü Einträge werden nicht mehr angezeigt.

Analyse

Beispiel tl:GridComponent: Das Kontext Menü wird von tl:ContextMenuOpener erzeugt. Der verwendet dazu ContentControl.createContextMenu(String). Das ContentControl ist das für die Grid. Und das verwendet ComponentContextMenuFactory.Provider welches von tl:PlainComponentContextMenuFactory erzeugt wurde. Dabei gibt es extra die Ableitung GridContextMenuFactory.Provider. Ursache ist, dass an der Grid die Config Property getComponentControlProvider als Default tl:ControlRepresentableCP hat. Und das hat an der Property getContextMenuFactory nur die PlainComponentContextMenuFactory.

tl:GridContextMenuFactory wird auch extra in der tl:GridTableConfig hinterlegt, einer Ableitung von tl:TableConfig. Darauf greift das tl:TableData und darüber das tl:TableControl zu. Letzteres wird aber vom tl:ContextMenuOpener nie aufgerufen. Der ruft immer wie oben beschrieben ContentControl.createContextMenu(String) statt TableControl.createContextMenu(String) auf.

Ursache ist die HTML Struktur: Damit ein Kontext Menü geöffnet wird, muss das HTML Attribut data-context-menu gesetzt sein. Das ist nur am HTML Tag für die gesamte Komponente gesetzt. Aber es ist seit #27350 ("Tabellen über HTML Templates rendern") nicht mehr an den Tabellen Zeilen (tr Tags) gesetzt. Dadurch wird bei der Suche nach außen im HTML Baum am tr Tag nichts gefunden, sondern erst am Tag für die gesamte Komponente. Und dadurch wird das tl:TableControl und damit auch die tl:GridContextMenuFactory nie aufgerufen.

Test

  • Im Demo im Baum ein Objekt mit mehreren Kindern auswählen.
  • In der Grid daneben mehrere dieser Kinder selektieren.
  • Das Kontext Menü auf einem der selektierten Kinder öffnen.
  • Es muss unter anderem einen "Löschen" Knopf geben.
  • Der muss genau die selektierten Kinder löschen.
  • Wieder mehrere Kinder selektieren.
  • Das Kontext Menü auf einem nicht selektierten Kind öffnen.
  • Es muss unter anderem einen "Löschen" Knopf geben.
  • Der darf nur dieses eine nicht-selektierte Kind löschen.
  • Get Started
  • Github
  • Discord
  • Das Unternehmen hinter TopLogic
  • Softwareentwicklung heute
  • Kontakt

© Copyright – Business Operation Systems GmbH

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