Major
Nice to have
Detail
Im WYSIWYG-Editor können Links auf Fachobjekte angelegt werden. Diese werden immer über den Goto-Mechanismus geöffnet.
Verbesserung
Es soll am WYSIWYG-Field hinterlegt werden können, wie diese Links geöffnet werden. Zum Beispiel werden in #19000, der In-App-Dokumentation, die Seiten der Dokumentation mittels solcher Links untereinander verlinkt. Dadurch ist ein Großteil dessen, was das Goto macht, unnötig: Es muss nicht erst ermittelt werden, welche Komponente dieses Fachobjekt anzeigen soll. Es soll genau in der aktuellen Komponente angezeigt werden. Daher soll dieses Verhalten angepasst werden können: Je nach Typ des Fachobjekts soll ein anderer CommandHandler dafür zuständig sein, das Fachobjekt anzuzeigen.
Anwendung
- Mit OpenTLObjectLink.annotateCommandId(TypedAnnotatable annotatable, Function<TLType, String> commandMapping) kann annotiert werden, mit welchem CommandHandler ein Objekt geöffnet werden soll.
- Wenn nichts annotiert ist, oder das annotierte Mapping null liefert, wird der normale Goto-Mechanismum benutzt.
- Sowohl das WYSIWYG-Field kann annotiert werden, als auch die Komponente. Dann gilt die Annotation für alle WYSIWYG-Fields in dieser.
- Das wird vom FormContextModificator SetOpenLinkCommandModificator benutzt, um ein Field entsprechend zu annotieren. Dabei kann der Name des Fields und das CommandHandler Mapping konfiguriert werden:
{{{#!xml <modifier class="com.top_logic.layout.wysiwyg.ui.SetOpenLinkCommandModificator"
field="content"
>
<commandMapping
commandId="setComponentModel"
type="tl.doc:Page"
/>
<commandMapping
commandId="openComponentForWritingMails"
type="contact:Person"
/>
...
</modifier> }}}
Verwandte Ticket
Wird im Rahmen von #19000 benötigt.
Test
- Für die Konfigurierbarkeit gibt es keinen Test.
- Die Links in der Doku-Anwendung von einer Seite auf eine andere Seite müssen weiterhin funktionieren.
- Bisherige Links in der Anwendung, zum Beispiel auf Personen oder Kontakte, müssen weiterhin funktionieren.