Skip to main content
Version: Dingo

ks.router

Die Verwendung unterscheidet sich stark zwischen Server- und Clientseitiger Ausführung. Im Client wird der Router verwendet um den User auf verschiedene Arten und Weisen auf ein anderes Layout oder eine andere URL zu navigieren. Im Server wiederrum, können eigene HTTP Routen registriert werden.

Navigiert direkt zu den angegebenen Parametern.

info

Nur Clientseitig verfügbar

Parameter

NameTypPflichtangabeBeschreibung
commandsString ArrayJaString Array mit Bestandteilen der URL
extrasObjektNeinExtra Einstellungen, wie beispielsweise QueryParameter der URL hinzufügen

Beispiel

In dem folgenden Beispiel wird direkt zum LayoutDesigner navigiert und das angegebene Layout dort geöffnet.

await this.navigate(['DesignerApplication', 'layoutDesigner'], {
queryParams: {
layoutId: this.modelService.getLayout(layoutName).id
}
});

Navigiert zu der angegebenen URL. Kann die angegebene URL optional auch im neuen Tab öffnen.

info

Nur Clientseitig verfügbar

Parameter

NameTypPflichtangabeBeschreibung
urlStringJaURL zu der navigiert werden soll
optsObjektNeinExtra Einstellungen, wie beispielsweise 'skipLeaveMessage' um nicht gespeicherte Änderungen zu verwerfen

openLayout

Öffnet die Layout-Definition des angegebenen Layouts.

info

Nur Clientseitig verfügbar

Parameter

NameTypPflichtangabeBeschreibung
layoutNameStringJaName des Layouts das geöffnet werden soll
eventObjektNeinClickEvent des Browsers. Wird beispielsweise verwendet um zu steuern, ob die URL in neuem Tab geöffnet werden soll
optionsObjektNeinExtra Einstellungen

openLayoutDesigner

Öffnet den LayoutDesigner für das angegebenen Layout.

info

Nur Clientseitig verfügbar

Parameter

NameTypPflichtangabeBeschreibung
layoutNameStringJaName des Layouts das geöffnet werden soll

openLifecycleDesigner

Öffnet den LifecycleDesigner für die angegebene Entity.

info

Nur Clientseitig verfügbar

Parameter

NameTypPflichtangabeBeschreibung
entityNameStringJaName der Entity für die der LifecycleDesigner geöffnet werden soll

openRecordInLayout

Öffnet den Record in dem angegebenen Layout. Ignoriert LayoutConditions und öffnet den Record immer in dem gewünschten Layout.

info

Nur Clientseitig verfügbar

Parameter

NameTypPflichtangabeBeschreibung
recordStringJaName der Entity für die der LifecycleDesigner geöffnet werden soll
layoutNameStringJaName der Entity für die der LifecycleDesigner geöffnet werden soll
eventObjektNeinClickEvent des Browsers. Wird beispielsweise verwendet um zu steuern, ob die URL in neuem Tab geöffnet werden soll
optionsObjektNeinExtra Einstellungen

reload

Lädt die Seite für den User neu. Wenn angularOnly auf false gesetzt wird, wird die Seite komplett neu geladen und alle Daten werden neu geladen.

info

Nur Clientseitig verfügbar

Parameter

NameTypPflichtangabeBeschreibung
optsObjektNeinExtra Einstellungen

api

info

Alle folgenden APIs stehen nur Serverseitig zur Verfügung

Mit .api lassen sich gängige HTTP Methoden implementieren und eigene Routen unter der angegebenen URL werden dann erreichbar. Alle unter API registrierten Routen werden verfügbar sein unter /api/rpc/public/{{yourURLHere}}. Die Route muss bei Start von WSPone registriert werden. Daher bietet es sich an die folgende Logik in einem Function GlobalScript zu verpacken. Diese Routen sind, trotz das sie public enthalten, durch Authentifizierung gesichert und ein valider WSPone User wird gebraucht.

Beispiel

Im folgenden Beispiel registrieren wir eine GET HTTP Route, die bei Aufruf ein Array mit Namen zurückliefert.

await ks.router.api.get('/getNames', (req, res) => {
return res.status(200).send(['Max', 'Erika']);
});

public

Mit .public lassen sich gängige HTTP Methoden implementieren und eigene Routen unter der angegebenen URL werden dann öffentlich erreichbar. Alle unter API registrierten Routen werden verfügbar sein unter /public/{{yourURLHere}}. Das restliche Verhalten ist analog zu api. Wichtig ist, das publicAccess in Ihrem Deployment aktiviert ist und der nobodySearch ScriptTrigger ausgeschaltet wurde.

private

Mit .private lassen sich gängige HTTP Methoden implementieren und eigene Routen unter der angegebenen URL werden dann erreichbar. Alle unter API registrierten Routen werden verfügbar sein unter /private/{{yourURLHere}}. Das restliche Verhalten ist analog zu api.