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 Nachricht
  • title Optional: Titel der Nachricht
  • url Optional: Url für einen zusätzlichen Link (Beispiel: formGuid + "/index/" + OrmOid)
  • linkText Optional: Text des Hyperlinks auf obige Url
  • unlimtedTimeToDisplay Optional: Ob die Nachrichten mehr als 5 Minuten aufgehoben werden sollen. Default: false
  • evalString Optional: Text mit Java Script der über eval() ausgeführt wird, wenn die Nachricht angezeigt wird.
  • displayTimeout Optional: Zeit wie lange der Toaster sichtbar ist. 0 -> stay sticky
  • oid 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);