From 6931c875e7491021656cd639726020eb14a9c75f Mon Sep 17 00:00:00 2001 From: Adam Shaw Date: Sun, 14 Nov 2010 22:12:31 -0800 Subject: [PATCH] new technique for stacking events (issue 111) --- src/agenda/AgendaEventRenderer.js | 16 ++----- src/basic/BasicEventRenderer.js | 19 +++----- src/common/DayEventRenderer.js | 50 +++++++++++++-------- src/common/util.js | 5 +++ tests/stacking.html | 73 +++++++++++++++++++++++++++++++ 5 files changed, 121 insertions(+), 42 deletions(-) create mode 100644 tests/stacking.html diff --git a/src/agenda/AgendaEventRenderer.js b/src/agenda/AgendaEventRenderer.js index de82183..6d74e9c 100644 --- a/src/agenda/AgendaEventRenderer.js +++ b/src/agenda/AgendaEventRenderer.js @@ -79,18 +79,10 @@ function AgendaEventRenderer() { function compileDaySegs(events) { - var levels = stackSegs(sliceSegs(events, $.map(events, exclEndDay), t.visStart, t.visEnd)), - i, levelCnt=levels.length, level, - j, seg, - segs=[]; - for (i=0; i" + @@ -160,6 +171,9 @@ function DayEventRenderer() { ""; seg.left = left; seg.outerWidth = right - left; + cols.sort(cmp); + seg.startCol = cols[0]; + seg.endCol = cols[1] + 1; } return html; } diff --git a/src/common/util.js b/src/common/util.js index 7228d90..043e10d 100644 --- a/src/common/util.js +++ b/src/common/util.js @@ -232,6 +232,11 @@ function cmp(a, b) { } +function arrayMax(a) { + return Math.max.apply(Math, a); +} + + function zeroPad(n) { return (n < 10 ? '0' : '') + n; } diff --git a/tests/stacking.html b/tests/stacking.html new file mode 100644 index 0000000..c44c7eb --- /dev/null +++ b/tests/stacking.html @@ -0,0 +1,73 @@ + + + + + + + + +
+ +