Verbesserung
Top-Thema
Wichtig
Kleinigkeit
Wichtig
Im TL-Demo in der Sicht "Tabellen:Einfach" oder in Prime können Bookmarklinks zu bestimmten Objekten generiert werden. Dazu wird ein Sternchen gerendert. Im IE kann man das normal anklicken, wodurch man den Link als Favorit speichern kann. In allen anderen Browsern muss man stattdessen über das Browserkontextmenü den Link kopieren. Das funktioniert jetzt jedoch nicht mehr, da das Browserkontextmenü auch an dieser Stelle durch das TL-Kontextmenü ersetzt wird (z.B. aufgrund der umgebenden Edit-Komponente).
Es muss also generell eine Möglichkeit geschaffen werden, ein DOM-Element (z.B. über eine CSS-Klasse) so auszeichnen zu können, dass dort das TL-Kontextmenü unterdrückt wird, so dass das normale Browserkontextmenü wieder verfügbar wird. Diese Möglichkeit muss dann beim Rendern der Bookmarklinks (com.top_logic.layout.basic.BookmarkRenderer.writeBookmarkIcon(DisplayContext, TagWriter, LabelProvider, Object, BoundComponent)) genutzt werden.
Verbesserung
Beim öffnen einen Kontextmenüs wird nun auf Clientseite in ajax-form.js > openContextMenu überprüft, ob das data-Attribut data-browser-menu gesetzt bzw. true ist. In diesem Fall wird statt des TL Kontextmenüs das Browserkontextmenü angezeigt.
Anwendung
Elemente, die zukünftig ebenfalls das Browserkontextmenü anzeigen sollen, können mit dem entsprechenden Attribut com.top_logic.mig.html.HTMLConstants.TL_BROWSER_MENU_ATTR ausgezeichnet werden. Ein Beispiel hierfür ist jetzt in com.top_logic.layout.basic.BookmarkRenderer.writeBookmarkIcon(DisplayContext, TagWriter, LabelProvider, Object, BoundComponent) implementiert:
{{{#!java out.writeAttribute(TL_BROWSER_MENU_ATTR, true); }}}
Test
Unter Tabelle > Einfach versuchen einen Bookmark durch Rechtsklick hinzuzufügen. Dabei muss sich das Kontextmenü des Browsers öffnen.