From a0f13dcb1cfbbea056712414dc7c309e0ea63108 Mon Sep 17 00:00:00 2001 From: Sean Kenny Date: Sat, 13 Sep 2014 14:53:08 +0100 Subject: [PATCH] All day events now assigned to correct resource --- src/resource/ResourceDayGrid.events.js | 23 +++++++++++++++++++++++ src/resource/ResourceDayGrid.js | 22 +++++++++++++++++++++- src/resource/ResourceView.js | 2 +- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/resource/ResourceDayGrid.events.js b/src/resource/ResourceDayGrid.events.js index ffa1586..ffdf5de 100644 --- a/src/resource/ResourceDayGrid.events.js +++ b/src/resource/ResourceDayGrid.events.js @@ -3,5 +3,28 @@ ----------------------------------------------------------------------------------------------------------------------*/ $.extend(ResourceDayGrid.prototype, { + eventToSegs: function(event, intervalStart, intervalEnd) { + var eventStart = event.start.clone().stripZone(); // normalize + var eventEnd = this.view.calendar.getEventEnd(event).stripZone(); // compute (if necessary) and normalize + var segs; + var i, seg; + if (intervalStart && intervalEnd) { + seg = intersectionToSeg(eventStart, eventEnd, intervalStart, intervalEnd); + segs = seg ? [ seg ] : []; + } + else { + segs = this.rangeToSegs(eventStart, eventEnd, event.resources); // defined by the subclass + } + + // assign extra event-related properties to the segment objects + for (i = 0; i < segs.length; i++) { + seg = segs[i]; + seg.event = event; + seg.eventStartMS = +eventStart; + seg.eventDurationMS = eventEnd - eventStart; + } + + return segs; + } }); \ No newline at end of file diff --git a/src/resource/ResourceDayGrid.js b/src/resource/ResourceDayGrid.js index e980113..b6d739f 100644 --- a/src/resource/ResourceDayGrid.js +++ b/src/resource/ResourceDayGrid.js @@ -9,5 +9,25 @@ function ResourceDayGrid(view) { ResourceDayGrid.prototype = createObject(DayGrid.prototype); // declare the super-class $.extend(ResourceDayGrid.prototype, { + rangeToSegs: function(rangeStart, rangeEnd, resourceIds) { + var segments = []; + var view = this.view; -}); + var resources = view.calendar.fetchResources(); + + for (col = 0; col < view.colCnt; col++) { + var resource = resources[col]; + if (resourceIds.indexOf(resource.id) > -1){ + segments.push({ + row: 0, + leftCol: col, + rightCol: col, + isStart: true, + isEnd: true + }); + } + } + + return segments; + } +}); \ No newline at end of file diff --git a/src/resource/ResourceView.js b/src/resource/ResourceView.js index e34567e..3060681 100644 --- a/src/resource/ResourceView.js +++ b/src/resource/ResourceView.js @@ -48,7 +48,7 @@ function ResourceView(calendar) { this.timeGrid = new ResourceTimeGrid(this); if (this.opt('allDaySlot')) { // should we display the "all-day" area? - this.dayGrid = new DayGrid(this); // the all-day subcomponent of this view + this.dayGrid = new ResourceDayGrid(this); // the all-day subcomponent of this view // the coordinate grid will be a combination of both subcomponents' grids this.coordMap = new ComboCoordMap([