Resources now work. Minimising the changes required to core

This commit is contained in:
srkenny@gmail.com
2013-08-12 17:06:39 +01:00
parent 5467c41c01
commit b750aec96e
5 changed files with 720 additions and 622 deletions
+40 -1
View File
@@ -169,6 +169,39 @@ function DayEventRenderer() {
// Generate an array of "segments" for all events.
function buildSegments(events) {
var resources = t.getResources;
if (resources.length === 0){
return buildSegmentsTEMP(events); // TEMP!
} else {
var segments = [];
for (var i=0; i<resources.length; i++) {
var resourceEvents = eventsForResource(resources[i], events);
for (var j=0; j<resourceEvents.length; j++) {
var eventSegments = buildSegmentsForEvent(resourceEvents[j], i);
segments.push.apply(segments, eventSegments); // append an array to an array
}
}
return segments;
}
}
// TODO - move this into more generic area as is a duplicate
//Generate an array of "segments" for all events.
function eventsForResource(resource, events) {
var resourceEvents = [];
for (var i = 0; i < events.length; i++) {
if (events[i].resource && events[i].resource.indexOf(resource.id) >= 0) {
resourceEvents.push(events[i])
}
}
return resourceEvents;
}
// Generate an array of "segments" for all events.
function buildSegmentsTEMP(events) {
var segments = [];
for (var i=0; i<events.length; i++) {
var eventSegments = buildSegmentsForEvent(events[i]);
@@ -181,11 +214,17 @@ function DayEventRenderer() {
// Generate an array of segments for a single event.
// A "segment" is the same data structure that View.rangeToSegments produces,
// with the addition of the `event` property being set to reference the original event.
function buildSegmentsForEvent(event) {
function buildSegmentsForEvent(event, col) {
var startDate = event.start;
var endDate = exclEndDay(event);
var segments = rangeToSegments(startDate, endDate);
for (var i=0; i<segments.length; i++) {
//TEMP
if (typeof col !== 'undefined'){
segments[i].leftCol = col;
segments[i].rightCol = col;
}
// TEMP
segments[i].event = event;
}
return segments;
+1
View File
@@ -22,6 +22,7 @@ function ResourceDayView(element, calendar) {
t.title = formatDate(date, opt('titleFormat'));
t.start = t.visStart = start;
t.end = t.visEnd = end;
renderResource(getResources.length);
}
}
File diff suppressed because it is too large Load Diff
+1
View File
@@ -123,6 +123,7 @@ function ResourceView(element, calendar, viewName) {
disableTextSelection(element.addClass('fc-agenda'));
function renderResource(c) {
colCnt = c;
updateOptions();
if (!dayTable) {
buildSkeleton(); // builds day table, slot area, events containers
+2 -2
View File
@@ -82,7 +82,7 @@
<script src='../src/agenda/AgendaWeekView.js'></script>
<script src='../src/agenda/AgendaDayView.js'></script>
<script src='../src/agenda/AgendaView.js'></script>
<script src='../src/agenda/AgendaEventRenderer.js'></script>
<!-- <script src='../src/agenda/AgendaEventRenderer.js'></script>-->
<script src='../src/resource/ResourceDayView.js'></script>
<script src='../src/resource/ResourceView.js'></script>
<script src='../src/resource/ResourceEventRenderer.js'></script>
@@ -141,7 +141,7 @@
{
title: 'R2: Meeting 11.00',
start: new Date(y, m, d, 11, 00),
allDay: false,
allDay: true,
resource: 'resource2'
},
{