From 7508cf185e69031fce087ab5d7ec99b48900f7b0 Mon Sep 17 00:00:00 2001 From: Pablo Villalba Date: Sat, 10 Sep 2011 17:55:12 +0200 Subject: [PATCH] Adding 4 weeks view --- src/_loader.js | 1 + src/basic/FourWeeksView.js | 46 +++++++++++++++++++ src/defaults.js | 3 ++ tests/four_weeks.html | 92 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 142 insertions(+) create mode 100644 src/basic/FourWeeksView.js create mode 100644 tests/four_weeks.html diff --git a/src/_loader.js b/src/_loader.js index 449160f..676c8e9 100644 --- a/src/_loader.js +++ b/src/_loader.js @@ -46,6 +46,7 @@ js('date_util.js'); js('util.js'); js('basic/MonthView.js'); +js('basic/FourWeeksView.js'); js('basic/BasicWeekView.js'); js('basic/BasicDayView.js'); js('basic/BasicView.js'); diff --git a/src/basic/FourWeeksView.js b/src/basic/FourWeeksView.js new file mode 100644 index 0000000..07e3838 --- /dev/null +++ b/src/basic/FourWeeksView.js @@ -0,0 +1,46 @@ + +fcViews.fourWeeks = FourWeeksView; + +function FourWeeksView(element, calendar) { + var t = this; + + + // exports + t.render = render; + + + // imports + BasicView.call(t, element, calendar, 'fourWeeks'); + var opt = t.opt; + var renderBasic = t.renderBasic; + var formatDates = calendar.formatDates; + + + + function render(date, delta) { + if (delta) { + addDays(date, delta * 7); + } + var start = addDays(cloneDate(date), -((date.getDay() - opt('firstDay') + 7) % 7)); + var end = addDays(cloneDate(start), 7*4); + var visStart = cloneDate(start); + var visEnd = cloneDate(end); + var weekends = opt('weekends'); + if (!weekends) { + skipWeekend(visStart); + skipWeekend(visEnd, -1, true); + } + t.title = formatDates( + visStart, + addDays(cloneDate(visEnd), -1), + opt('titleFormat') + ); + t.start = start; + t.end = end; + t.visStart = visStart; + t.visEnd = visEnd; + renderBasic(4, 4, weekends ? 7 : 5, true); + } + + +} diff --git a/src/defaults.js b/src/defaults.js index 9cb9982..e5860db 100644 --- a/src/defaults.js +++ b/src/defaults.js @@ -27,11 +27,13 @@ var defaults = { // time formats titleFormat: { month: 'MMMM yyyy', + fourWeeks: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}", week: "MMM d[ yyyy]{ '—'[ MMM] d yyyy}", day: 'dddd, MMM d, yyyy' }, columnFormat: { month: 'ddd', + fourWeeks: "ddd", week: 'ddd M/d', day: 'dddd M/d' }, @@ -54,6 +56,7 @@ var defaults = { today: 'today', month: 'month', week: 'week', + fourWeeks: "4 weeks", day: 'day' }, diff --git a/tests/four_weeks.html b/tests/four_weeks.html new file mode 100644 index 0000000..316d536 --- /dev/null +++ b/tests/four_weeks.html @@ -0,0 +1,92 @@ + + + + + + + + +
+ +