SpinelzのCalendarのオプション
SpinelzのCalendarがいい感じなので、使うことにしたんですけど・・・
ドキュメントがほとんどない。
なんで?あんま人気ないのかな?
あるのは、script.spinelz.org is Expired or Suspended.のデモくらい。
まぁ自分の検索が甘いだけかもしれませんが。
てか、ソース読めってことなんでしょうね。
てわけで、とりあえずデフォルトのオプションとその初期値を書いときます。
左がオプション名で、右がデフォルト値です。
オプション一覧
initDate : new Date(), cssPrefix : 'custom_', holidays : [], schedules : [], size : Calendar.size.large, regularHoliday : [0, 6], displayIndexes : [0, 1, 2, 3, 4, 5, 6], displayTime : [{hour: 0, min: 0}, {hour: 24, min: 0}], weekIndex : 0, dblclickListener : null, afterSelect : Prototype.emptyFunction, beforeRefresh : Prototype.emptyFunction, changeSchedule : Prototype.emptyFunction, changeCalendar : Prototype.emptyFunction, displayType : 'month', highlightDay : true, beforeRemoveSchedule : function(){return true;}, dblclickSchedule : null, updateTirm : Prototype.emptyFunction, displayTimeLine : true, clickDateText : null, monthHeaderFormat : null, weekHeaderFormat : null, weekSubHeaderFormat : null, dayHeaderFormat : null, dayOfWeek : DateUtil.dayOfWeek
となってます。
それでは、わかってる範囲でいくつかオプションの説明。
cssPrefix
カスタムスタイルシートの名前
holidays
休日のデータ
schedules
スケジュールデータ
size
カレンダーのサイズ、Largeとsmallが選べる
regularHoliday
デフォルトの休日の曜日、0〜6がそれぞれ日曜〜土曜に対応してる。
displayIndexes
初期表示する曜日
displayTime
週および日表示のときの時間の表示領域
weekIndex
週のはじまりの曜日
changeSchedule
スケジュール変更終了時、実行される動作
displayType
初期表示タイプ、month、week、dayが選択可。
dblclickSchedule
スケジュールダブルクリック時の動作
updateTirm
スケジュールの時間領域変更終了時に実行される動作
Rails用Helper
Railsで使うときのHelperを一応書いときます。
Helper
def calendar(name, options = {}) options.stringify_keys! options["cssPrefix"] = %Q!'#{options["cssPrefix"]}'! if options["cssPrefix"] options["displayType"] = %Q!'#{options["displayType"]}'! if options["displayType"] cal = %Q!var calendar = new Calendar('#{name}', {#{hash_to_javascript_options(options)}});! javascript_tag(cal) end private def hash_to_javascript_options(hash_options) ary = Array.new hash_options.each do |key, value| ary << %Q!#{key}:#{value}! end ary.join(',') end
んで、Viewは、
View
<div id="calendar1"></div> <%= calendar("calendar1", {:displayType => "week"}) %>
といった感じで、
nameにカレンダーを表示するdivのidを、
optionsにはHashで変更したいオプションを入れてください。
まぁ
こんな感じですね。
え〜と、書いてないやつは確認してないので、自信がないので書いてません。
確認したら追記するかも。
なんとなく名前からわかる気もしますが・・・
あと、間違ってるとこあったら教えてください。
今のところ、Railsで使うときに、View内にベタでJavaScript書きたくないので、
Helperに落とし込んでる作業中なんですけど、
誰かRails用のHelper書いてたりしないですかね。
追記(6/22)
hash_to_javascript_optionsメソッドを書き忘れてたんで追記。
これは、Hashで渡されたオプションを
key : value
の形式に変えてるだけです。