Terima kasih untuk proyeknya! Benar-benar bagus !
Saat ini saya mencoba meningkatkan kalender penuh dari v1 ke v2. Saya memperbaiki semua masalah utama berkat dokumentasi halaman Peningkatan ke v2.
Saya sekarang terjebak pada masalah konseptual...
Kalender saya menampilkan acara berdasarkan pengguna. Setiap pengguna diwakili oleh sumber peristiwa. Sumber peristiwa pada dasarnya adalah serangkaian peristiwa. Saat saya menambahkan acara untuk pengguna, saya ingin acara tersebut ditambahkan ke sumber acara pengguna secara dinamis. Dengan cara ini saya selalu memiliki pencocokan lengkap antara sumber dan acara yang ditampilkan di kalender.
Saya berhasil mengimplementasikan use case ini di v1 sebagai berikut:
private void addEventToSource(Event event) {
// get user
String userId = event.getUserId();
// get source for user (sources is a map user -> JsonObject)
JSONObject source = sources.get(userId);
// get the list of events
JSONArray array = (JSONArray)source.get("events");
// add event at the end of the list
array.set(array.size(), createJsonEvent(event));
// refetch events from all sources
refetchEvents();
}
Kode ini berfungsi dengan baik berkat fakta bahwa sumber pengguna sebelumnya diketahui oleh full-calendar js :
private static native void addSource(String calendarId, JavaScriptObject source) /*-{
$wnd.jQuery("#"+calendarId).fullCalendar('addEventSource', source);
}-*/;
Secara internal, semua pembaruan saya dilakukan pada objek sumber melalui manipulasi JSON. Saat saya mengambil ulang acara, semua sumber pengguna saya sudah diperbarui dan ditampilkan dengan baik di kalender.
Namun, kode ini tidak berfungsi di v2. Tampaknya sumber yang saya kirim ke kalender lengkap berbeda dengan sumber yang digunakan secara internal untuk menampilkan acara. Semua pembaruan saya pada sumber tidak diterapkan pada data internal, sehingga tidak terlihat di kalender.
Apakah ada cara untuk menggunakan sumber peristiwa dalam? Adakah ide untuk mengimplementasikan kasus penggunaan seperti itu? Mungkin saya melewatkan sesuatu... Terima kasih sebelumnya!
Julien