« Indo European Language Google Site | Main | FOAF in RDFa »
December 10, 2009
FullCalendar Code
This is a genius piece of jQuery:
http://arshaw.com/fullcalendar/
<script type="text/javascript">
var events =
[
{ title: 'Dummy', start: new Date(1900,1,1)}
,{
title: "Reuters Datastream Training",
start: "2009-09-22T16:00:00+01:00",
end: "2009-09-22T17:00:00+01:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/reuters-datastream-training"
}
,{
title: "Pom tiddly pom",
start: "2009-11-23T10:59:00+00:00",
end: "2009-11-23T12:49:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/pom-tiddly-pom"
}
,{
title: "Management of R and D and Product Innovation",
start: "2009-02-16T16:10:00+00:00",
end: "2009-02-16T18:00:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/management-of-r-and-d-and-product-innovation2"
}
];
</script>
<script type="text/javascript">
var recurrences =
[
{ title: 'Dummy' }
,{
title: "Foundations of Finance Theory",
start: "2009-09-22T14:00:00+01:00",
end: "2009-09-22T15:50:00+01:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/foundations-of-finance-theory",
frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20091201T000000",
stop_date: "2009-12-01T00:00:00+00:00"
}
,{
title: "Analysis of Corporate Financial Information Lecture",
start: "2009-09-24T11:10:00+01:00",
end: "2009-09-24T13:00:00+01:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/analysis-of-corporate-financial-information-lecture",
frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20091203T000000",
stop_date: "2009-12-03T00:00:00+00:00"
}
,{
title: "My test title",
start: "2009-12-02T16:00:00+00:00",
end: "2009-12-02T17:50:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/my-test-title",
frequency: "FREQ=WEEKLY;INTERVAL=2;UNTIL=20100324T000000",
stop_date: "2010-03-24T00:00:00+00:00"
}
,{
title: "Derivatives Tutorial Group 1",
start: "2010-01-11T09:00:00+00:00",
end: "2010-01-11T10:00:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/derivatives-tutorial",
frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000",
stop_date: "2010-02-21T00:00:00+00:00"
}
,{
title: "Management of R and D and Product Innovation",
start: "2010-01-12T16:10:00+00:00",
end: "2010-01-12T18:00:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/management-of-r-and-d-and-product-innovation",
frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100214T000000",
stop_date: "2010-02-14T00:00:00+00:00"
}
,{
title: "Doing Business Projects in Emerging Markets",
start: "2010-01-11T09:00:00+00:00",
end: "2010-01-11T10:50:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/doing-business-projects-in-emerging-markets",
frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000",
stop_date: "2010-02-21T00:00:00+00:00"
}
,{
title: "Derivatives Tutorial Group 2",
start: "2010-01-11T10:00:00+00:00",
end: "2010-01-11T11:00:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/derivatives-tutorial-group-2",
frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000",
stop_date: "2010-02-21T00:00:00+00:00"
}
,{
title: "Corporate Strategy",
start: "2010-01-11T21:00:00+00:00",
end: "2010-01-11T22:50:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/corporate-strategy",
frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000",
stop_date: "2010-02-21T00:00:00+00:00"
}
,{
title: "Advertising Management",
start: "2010-01-11T14:00:00+00:00",
end: "2010-01-11T15:50:00+00:00",
allDay: false,
url: "http://www.business-school.ed.ac.uk/mybiz/msc-accounting-and-finance/my-study/timetables/msc-accounting-and-finance/advertising-management",
frequency: "FREQ=WEEKLY;INTERVAL=1;UNTIL=20100221T000000",
stop_date: "2010-02-21T00:00:00+00:00"
}
];
function get_event_recurrences(recurrences, events){
var end_date;
for(i in recurrences){
if(i > 0){
var this_one = recurrences[i];
var number_of_days = 7;
if(this_one['frequency'].match(/DAILY/)){ number_of_days = 1; }
if(this_one['frequency'].match(/MONTHLY/)){ number_of_days = 30; }
if(this_one['frequency'].match(/WEEKLY/)){ number_of_days = 7; }
var stop_date = eval($.fullCalendar.parseDate(this_one['stop_date']).getTime()) / 1000;
end_date = eval($.fullCalendar.parseDate(this_one['end']).getTime()) / 1000;
var start_date = eval($.fullCalendar.parseDate(this_one['start']).getTime()) / 1000;
var interval = (60 * 60 * 24) * number_of_days * extract_interval(this_one['frequency']);
//alert((eval(stop_date) - eval(start_date)) / interval);
for(d = start_date; d < stop_date; d = d + interval){
var start = d;
var new_oc = {};
new_oc['title'] = this_one['title'];
new_oc['url'] = this_one['url'];
new_oc['allDay'] = this_one['allDay'];
new_oc['start'] = new Date(start*1000);
new_oc['end'] = new Date(end_date*1000);
end_date = end_date + interval;
events.push(new_oc);
}
}
}
return events;
}
function extract_interval(frequency){
var da_list = frequency.split(';');
var interval = da_list[1];
var da_number = interval.split('=');
return eval(da_number[1]);
}
</script><script type="text/javascript">
var now = new Date();
$(document).ready(
function(){
$('#calendar').fullCalendar(
{header: {left: 'prev,next today',center: 'title', right: 'month,agendaWeek,agendaDay'},
columnFormat: {
week: 'ddd d MMM', // Mon 9/7
day: 'dddd d MMM' // Monday 9/7
},
editable: false,
firstHour: 9, //eval(now.getHours()),
minTime: '8:30am',
maxTime: '8:30pm',
timeFormat: 'H:mm',
firstDay: 1,
defaultView: 'agendaWeek',
currentTimezone: 'Europe/London',
events: get_event_recurrences(recurrences, events)});
}
);
</script>
Tags: jQuery
Posted by pj at December 10, 2009 04:42 PM