Patrick Holder
29. Mai 2017

JQuery UI Dialoge für Standardseiten

JQuery UI

Sie nutzen Custom Buttons auf Standardseiten und wollen vor der Ausführung einer Funktion noch einen Dialog anzeigen?Dann ist JQuery UI die Lösung.

Diese Vorteile bietet JQuery UI

JQuery UI bietet Ihnen die Möglichkeit über JavaScript ein Modal zu erzeugen und in diesem eine Visualforce Page einzubetten, um beispielsweise Usereingaben zu verarbeiten oder die Ausgabe von Warn- oder Fehlermeldungen aus JavaScript heraus zu realisieren. JavaScript bietet standardmäßig nur die Möglichkeit durch die alert()-Funktion dem Benutzer eine einfache Meldung anzuzeigen. Jedoch wenn wir ehrlich sind, sehen alert()-Meldung nicht sehr ansprechend aus und eine unterschiedliche Darstellung für Warnmeldung und Erfolgsmeldung ist nicht möglich.
Im Folgendem werde ich Ihnen in vier kurzen Schritten erläutern wie sie einen ansprechenden Dialog für JavaScript-Buttons erstellen können.

Unser E-Book zur Salesforce Entwicklung

E-Book: Salesforce Entwicklung

Die Wahl der richtigen Entwicklungsumgebung, Todsünden der Salesforce Entwicklung und vieles mehr.

Beispiel: Archivierungs-Szenario von Accounts

Bei vielen Salesforce Kunden werden Accounts nicht gelöscht, sondern lediglich archiviert, um historische Daten nicht zu verlieren. Hierzu wird auf dem Account das boolesche Feld „isArchived“ verwendet. Damit die Archivierung für den User so unkompliziert wie das standardmäßige Löschen eines Records ist, soll es auf dem Account Objekt einen Custom Button zur Archivierung geben.
Bis hier lässt sich die Anforderung mit einem einfachen Custom Button abbilden. In unserem Beispiel wird jedoch verlangt, dass der User für jede Archivierung eine Begründung pflegen muss. Dieser Anforderung macht die Realisierung deutlich komplexer, da es nicht ohne weiteres möglich ist einen JavaScript-Button, um einen Eingabe-Dialog zu erweitern.

Für dieses Beispiel werde ich insgesamt vier Komponenten nutzen.

  1. Ein JavaScript-File, welches als statische Ressource gespeichert wird.
  2. Einen Custom JavaScript Button.
  3. Eine APEX Klasse.
  4. Eine Visualforce Page.

1. Erstellen Sie ein JavaScript-File als statische Ressource

Das JavaScript-File dient dazu das JQuery UI Modal zu definieren.

JQuery UI Modal definieren

Durch den Befehl

j$(“<link>”,{rel:”stylesheet”, href:”https://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css”}));

definieren Sie welches JQuery-UI Stylesheet Sie nutzen wollen und somit wie das eigentliche Modul aussehen wird. Auf der JQuery-UI Website finden Sie diverse verschiedene UI-Themes.

Durch den Code-Abschnitt

j$(“<iframe>”,{id:”vfFrame”,
src:”/apex/archiveReasonDialog?id=”+accountId,
height:100,
width:50,
frameBorder:0})
));

bestimmen Sie welche Visualforce-Page innerhalb des Modals angezeigt werden soll. Hierdurch haben Sie die Möglichkeit von einfachen Meldungen bis hin zu komplexen Formularen beliebige Visualforce-Seiten einzubinden.

Nachdem Sie das JavaScript-File erstellt haben, speichern Sie dieses als Static Ressource in Salesforce unter dem Namen archiveAccountJS ab.

2. Erstellen Sie einen Apex Controller

Als Nächstes wird eine APEX-Klasse erstellt, welche dazu dient die Logik der Visualforce-Page abzubilden. In diesem Beispiel wird die APEX-Klasse dazu genutzt, um unsere Archivierungslogik des Accounts abzubilden.

JQueryUI_APEX_Code

3. Erstellen Sie einen Visualforce Seite

Der Inhalt des JQuery UI Modals wird durch die Visualforce Seite definiert. In unserem Beispiel wird durch eine Visualforce Seite mit dem Namen archiveReasonDialog eine einfache Eingabemaske für den Archivierungsgrund bereitgestellt.

JQueryUI_VF_Code

Der auf der Visualforce Seite implementierte JavaScript Code dient dazu die Account-Seite nach der Archivierung neuzuladen, damit die Änderungen sofort sichtbar werden.

4. Erstellen Sie einen Custom JavaScript Button

Der letzte Schritt ist die Erstellung eines Custom Buttons, um das Modal aufzurufen. Hierzu erstellen wir einen JavaScript Button auf dem Account Objekt.

JQueryUI_CustomButton

Der soeben erstelle Button muss nun auf dem Page Layout des Accounts eingebunden werden.

Wenn alles korrekt eingerichtet ist gibt es nun auf der Account-Seite den gerade erstellten Archivierungs -Button. Bei Betätigung des Buttons wird ein Modal zur Eingabe einer Archivierungsbegründung angezeigt.
JQueryUI_AccountPage

Haben Sie Fragen oder Anregungen? Verfassen Sie einen Kommentar oder melden Sie sich per Mail bei info@mind-force.de. Unser Team wird Ihnen schnellstmöglich antworten.

Patrick Holder

Patrick Holder

Mein Name ist Patrick Holder und ich bin begeisterter Salesforce Consultant und Teamleiter im Fachbereich mindforce. Im Bereich CRM kann ich meine Leidenschaft für IT und wirtschaftliche Prozesse vereinen.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

Egal ob große oder kleine Änderungen - Ihr produktives System sollte niemals zum Testen neuer Funktionen verwendet werden. Die gute Nachricht: das muss es auch nicht! Passen Sie Ihre Salesforce […]

weiterlesen

JavaScript Remoting ist eine Möglichkeit von einer Visualforce-Seite aus Datenbankaufrufe auszuführen und zu verarbeiten.

weiterlesen

Viele Unternehmen wollen ihre Produkte heutzutage agil umsetzen. Bei der weiteren Planung stellt sich oft ein Unverständnis heraus, was sich hinter diesem Begriff verbirgt. Warum wir bei mindforce agile Vorgehensweise […]

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Anja Klusner Kundenservice