FullCalendar.events.tplPackageTextTemplate-Ressource, die den JavaScript-Callback zum Abrufen von Ereignissen definiert, der in die Konfiguration jeder FullCalendar-Ereignisquelle eingefügt wird. Diese einzelne Vorlagendatei ist die kritische Brücke zwischen dem Wicket-Server und dem FullCalendar-Client: Sie generiert eine JavaScript-Funktion, die eine Wicket-Ajax-GET-Anforderung an eine dynamisch generierte URL (eindeutig pro Ereignisquelle) stellt und dabei den sichtbaren Datumsbereich des Kalenders (Start/Ende als Epochen-Millisekunden), den Zeitzonen-Offset des Clients und ein Anti-Cache-Token übergibt. Die Antwort wird direkt an den FullCalendar-Callback als Ereignisdaten-Array übergeben.Die Vorlage verwendet die Variablenersetzungssyntax von Wickets TextTemplate: ${url} ist die einzige Variable. Zur Renderzeit erstellt FullCalendar.setupCallbacks() eine HashMap mit dem Schlüssel "url", der auf die Ajax-Callback-URL der Ereignisquelle gesetzt ist (generiert von Wicket.Ajax.ajax), und ruft EVENTS.asString(map) auf, um das endgültige JavaScript zu erzeugen.
Das generierte JavaScript führt einen Wicket-Ajax-Aufruf mit folgenden Parametern durch:
"u" — die Callback-URL, eindeutig für jede Ereignisquelle"dt": "json" — erwartet eine JSON-Antwort"wr": false — verwendet keine Wicket-Ajax-Antwortverarbeitung (das rohe JSON ist die Ereignisliste)"ep" (zusätzliche Parameter): start und end (Epochen-Millisekunden aus den start/end-Callback-Argumenten von FullCalendar), timezoneOffset (UTC-Offset des Clients in Minuten), anticache (Zeitstempel + Zufallswert zur Vermeidung von Browser-Caching)"sh" (Erfolgsbehandler) — übergibt die jqXHR-Antwort direkt an den FullCalendar-Callback und stellt so effektiv das Ereignisdaten-Array bereitWickets PackageTextTemplate findet diese Datei per Konvention: Sie muss sich im selben Java-Paket (net.ftlines.wicket.fullcalendar) wie die FullCalendar-Klasse befinden und denselben Basisnamen haben. Die Erweiterung .tpl kennzeichnet sie als Textvorlagen-Ressource.
| Commit | Was wurde geändert |
|---|---|
9ebb88522 | Die Vorlagendatei wurde als Teil des ersten Repository-Commits hinzugefügt. Das Ajax-Protokoll (Wicket-Ajax-Aufruf mit Epochen-Zeitstempeln, Zeitzonen-Offset und Anti-Cache-Token) wurde von Anfang an etabliert und ist unverändert geblieben – ein Zeugnis für die Stabilität sowohl der Wicket-Ajax-API als auch des FullCalendar-Ereignisquellen-Protokolls. |