Meldungen an den Benutzer erfolgen in der Regel über sogenannte Toaster. Diese können sowohl auf dem Client als auch auf dem Server initiiert werden. Folgende Typen von Toaster stehen zur Verfügung
- Fehler
- Warnung
- Information
- Erfolg
Der Typ schlägt sich jeweils in einer anderen farblichen Gebung der Toaster-Meldung nieder.
Serverseitig
Toaster vom Server werden immer einem bestimmten Anwender angezeigt. Die Anzeige erfolgt dabei unmittelbar, falls der Anwender angemeldet ist. Falls dies nicht der Fall ist, wird sie beim nächsten Login angezeigt. Das Verhalten eines Toasters kann über folgende Parameter der Methoden aus Api.ClientCommunication
beeinflusst werden.
userOid
Guid des Benutzers, der die Nachricht erhalten soll.message
Die Nachrichttitle
Optional: Titel der Nachrichturl
Optional: Url für einen zusätzlichen Link (Beispiel:formGuid + "/index/" + OrmOid
)linkText
Optional: Text des Hyperlinks auf obige UrlunlimtedTimeToDisplay
Optional: Ob die Nachrichten mehr als 5 Minuten aufgehoben werden sollen. Default:false
evalString
Optional: Text mit Java Script der übereval()
ausgeführt wird, wenn die Nachricht angezeigt wird.displayTimeout
Optional: Zeit wie lange der Toaster sichtbar ist. 0 -> stay stickyoid
Optional: Oid der Nachricht, die verändert werden soll.
API Methoden
public Guid Create[Error|Warning|Info|Success]Extended(Guid userOid, String message, String title = "", String url = "", String linkText = "", Boolean unlimtedTimeToDisplay = false, String evalString = null, uint displayTimeout = ErrorTime, Guid? oid = null)
Es gibt zwei vereinfachte Varianten, die ein BA definiertes Verhalten haben. Zum einen das Standardverhalten über
public Guid Create[Error|Warning|Info|Success](Guid userOid, String message, String title = "", String url = "", String linkText = "", Guid? oid = null)
Als weiteres für das Verhalten von Nachrichten von Hintergrundprozessen.
public Guid CreateWorker[Error|Warning|Info|Success](OrmUser user, String message, String title = "", String url = "", String linkText = "", Guid? oid = null)
Beispiele
Api.ClientCommunication.CreateSuccess(Api.User.CurrentUserGuid(), message);
Api.ClientCommunication.CreateWorkerError(Api.User.CurrentUserGuid(), message, Title = title);
Falls man anstatt der Oid den OrmUser
angibt.
OrmUser user = Session.GetObjectByKey<OrmUser>(UserContextGuid);
Api.ClientCommunication.CreateSuccess(user, message, url: link, linkText: linkText);
Modifizieren oder Ausblenden von Nachrichten
Dafür wird sich die zurückgegebene Guid
gemerkt und beim Aufruf der Methoden mitgegeben.
Guid toastGuid = Api.ClientCommunication.CreateSuccess(Api.User.CurrentUserGuid(), message1);
Api.ClientCommunication.CreateSuccess(Api.User.CurrentUserGuid(), message2, oid: toastGuid);
Api.ClientCommunication.HideToast(toastGuid);
Clientseitig
Zur Anzeige von Toasts wird das Framework Toastr verwendet. Die Type Script Klasse BA.Ui.Toast
stellt eine vereinfachte Schnittstelle zur Verfügung, um das bekannte Standardverhalten zu ermöglichen. Mit den Optionen in ToastrOptions
kann man das Verhalten entsprechend modifizieren.
Methoden
public static Error(message: string, title?: string, overrides?: ToastrOptions, oid?: BA.Classes.Guid): BA.Classes.Guid
public static Warning(message: string, title?: string, overrides?: ToastrOptions, oid?: BA.Classes.Guid): BA.Classes.Guid
public static Info(message: string, title?: string, overrides?: ToastrOptions, oid?: BA.Classes.Guid): BA.Classes.Guid
public static Success(message: string, title?: string, overrides?: ToastrOptions, oid?: BA.Classes.Guid): BA.Classes.Guid
Es gibt jeweils noch eine Sticky Methode
Beispiele
BA.Ui.Toast.Info(message, title);
BA.Ui.Toast.Warning(message, title);
var toastGuid: BA.Classes.Guid = BA.Ui.Toast.InfoSticky(message, title);
BA.Ui.Toast.HideToast(toastGuid);