2013-10-03 50 views
1

我正在嘗試自定義fullcalendar事件。只有一個事件源和我的事件對象如下所示:FullCalendar:基於用戶的事件顏色

{id = 1,title =「XYZ Apple」,start =「2013-10-02」,end =「2013-10-06」, allDay = true,userId =「abc」}

我想要實現的是基於用戶ID的我想定義事件的顏色。 顏色的選擇並不重要,可以是隨機的,並且用戶的數量是動態的 ,例如, 所有事件在黑色 所有活動用戶ID「ABC」顯示爲紅色用戶ID「XYZ」顯示器,等

而且,我期待的建議,如果我可以通過事件源與多個資源定義爲: 對於「abc」 - 不同的事件源 對於「xyz」 - 不同的事件源。

用戶是動態的。

任何建議:

這是我的日曆看起來像

var calendar = { 
    header: { 
     left: 'prev,next', 
     center: 'title', 
     right: 'today, basicDay,basicWeek,month' 
    }, 
    defaultView: 'month', 
    buttonText: { 
     today: 'Today', 
     day: 'Day', 
     week: 'Week', 
     month: 'Month', 
     prev: 'Prev', 
     next: 'Next', 

    }, 
    weekends: true, 
    editable: true, 
    events: { 
     ignoreTimezone: true, 
     url: 'GetEvents',        
     error: function() { 
      alert('GetEvent Call Failed!'); 
     } 
    } 
}; 

myCalendar.fullCalendar(calendar); 
+0

它看起來像nomatteus的答案你有覆蓋,但我想提一個[圖書館](https://github.com/nluqo/autumn)我寫的是專爲此目的而設計的。您可以傳入像用戶ID這樣的密鑰並獲取顏色。如果你能夠設置一個擁有用戶ID的屬性,它會變得更容易。 – Jere

回答

0

您可以通過傳遞eventBackgroundColor參數與每個事件(Event object docs)自定義事件的顏色。


爲了生成顏色,你需要一個「種子隨機顏色」。還有一個here(JavaScript)的,而且我也用這個方法紅寶石:

def random_hex(integer) 
    srand integer 
    (rand * 100000000).to_i.to_s(16)[0..5] 
end 

您將與用戶ID種子吧。這個概念在其他語言中應該是相似的。