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.
navigate
Navigiert direkt zu den angegebenen Parametern.
Nur Clientseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
commands | String Array | Ja | String Array mit Bestandteilen der URL |
extras | Objekt | Nein | Extra 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
}
});
navigateByUrl
Navigiert zu der angegebenen URL. Kann die angegebene URL optional auch im neuen Tab öffnen.
Nur Clientseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
url | String | Ja | URL zu der navigiert werden soll |
opts | Objekt | Nein | Extra Einstellungen, wie beispielsweise 'skipLeaveMessage' um nicht gespeicherte Änderungen zu verwerfen |
openLayout
Öffnet die Layout-Definition des angegebenen Layouts.
Nur Clientseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
layoutName | String | Ja | Name des Layouts das geöffnet werden soll |
event | Objekt | Nein | ClickEvent des Browsers. Wird beispielsweise verwendet um zu steuern, ob die URL in neuem Tab geöffnet werden soll |
options | Objekt | Nein | Extra Einstellungen |
openLayoutDesigner
Öffnet den LayoutDesigner für das angegebenen Layout.
Nur Clientseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
layoutName | String | Ja | Name des Layouts das geöffnet werden soll |
openLifecycleDesigner
Öffnet den LifecycleDesigner für die angegebene Entity.
Nur Clientseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
entityName | String | Ja | Name 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.
Nur Clientseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
record | String | Ja | Name der Entity für die der LifecycleDesigner geöffnet werden soll |
layoutName | String | Ja | Name der Entity für die der LifecycleDesigner geöffnet werden soll |
event | Objekt | Nein | ClickEvent des Browsers. Wird beispielsweise verwendet um zu steuern, ob die URL in neuem Tab geöffnet werden soll |
options | Objekt | Nein | Extra 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.
Nur Clientseitig verfügbar
Parameter
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
opts | Objekt | Nein | Extra Einstellungen |
api
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.