mirror of
https://github.com/wassname/fullcalendar.git
synced 2026-08-12 12:00:40 +08:00
Resources now work. Minimising the changes required to core
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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'
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user